Thank you!
I dont seem to understand that casting! For example bind function takes argument for example (struct sockaddr *)&server. I don't get it! What is the point of this? Why so much casting?

In raw socket programming why do I need to create an ip and tcp pointer instead of an regular object?

Do you know any c tutorial about this object, pointer casting? I don't get it!

When I chacke packet varibles size to something bigger than 1024, why is the checksum invalid?
And where did you learn raw socket programming? Thanx!