Networking
What is networking? It's a collection of something that send data from one something to another. This could apply even to humans if you consider sound a type of data, business, etc.. However, we all have to learn how to properly communicate with one another. It's no different with computers; you have to sit down and learn the specifics, it's like learning a language all on its own. However, with computers, we can screw up and be okay (unlike in real life) and as a result, we can use that to test and experiment to speed up the learning process! We continue on to interfacing with the network...
Just following Protocol...
Networking... has *never* been more simple than it is today (:D). Generally, your specific OS will provide you with some sort of basic API to use. Before I move on to that, I'd like to explain the internet really fast.
http://tinyurl.com/42bn2s4
This is your common "internet". Please note this is usually for general areas and isn't concerning the big picture. However, I'm not worrying about that in this tutorial as this information isn't needed while "networking". This is just to help wrap your mind around it. When you think about how data gets to one another, you can think of this structure.
Also, data isn't just sent out to the internet to explore for a few hours until it reaches its destination. No, it uses something called the "internet" layer to route where it is going. Generally, you'll see use of the Internet Protocol here (please note that an IP address is of course part of the IP protocol).
Overall, we can picture a packet (a packet is simply a structure of data) with four layers. These layers are generally called the link (hardware) layer, the internet (routing) layer, the transport (control) layer, and the application layer. Together, this makes up for the Internet Protocol Suite. The packing of these packets are almost *always* abstract to us. We can program without knowing about this entirely. Most of these layers are self explanatory. To clarify though, the hardware layer helps a packet come back into a network of computers, the routing layer helps a packet reach the network at all, the control layer adds rules to the packet to help a programmer assure a packet presense, and an application layer filters the data that came with the packet to be useful to the client in some way.
When we program, we generally create the application layer (whether we know it or not). However, all that's required for a packet to be sent is the routing layer (so it knows where to go). The transport layer and application is not actually required at all! However, without the transport layer, there is a possibility that our data will get to its destination corrupt, out of order, or just not at all! The control layer "fixes" this to some extent, usually by providing some type of rules that we can follow (depending on the protocol used). Without an application layer, there would be no purpose to the packet.
More here in a bit... I might need to post this up elsewhere as the word limit might be reached :/
4/29/2011 EDIT: I'm still working on it. Windows 7 decided to blue screen me then not want to do anything else... I have absolutely no idea what happened, it doesn't seem to be a hardware issue (other partitions function fine), and I just decided a fresh install was in need (losing my example... since I forgot that I could just fetch the file from another functioning partition...)