views:

94

answers:

2

I want to leave strictly desktop programming and start exploring networking. I want to make a little program that just sends data from computer A to B running the same program.

Just a few questions before I start...

1) What is a better language for net programming Python or C#?

2) Could you recommend some stuff to help me understand how data is sent over the web?

Thanks!

+1  A: 

Both languages are equally capable. It is a matter of personal preference.

What resources you need will depend on the application you intend to write. The two most important things you will need to know:

  • The Application Layer, Transport Layer, & Internet Layers of the Internet
  • Socket Programming

You're diving into a very broad subject, with a lot of information. I found this book to be helpful to me.

Stargazer712
@shorty876: Once you have implemented at least a couple of existing simple protocols via socket programming, you may want to investigate higher level solutions, such as various RPC mechanisms, and WCF in .NET/C#.
Merlyn Morgan-Graham
+2  A: 

It really depends on what you're doing. Both Python and C# have very capable modules for network communication - I'd say you'd be equally well-off in either given no knowledge of what you're doing. The decision between Python and C# will probably come down to whether your application lends itself more to the dynamic typing of Python or the static typing of C#.

As for your second question, I've always found it interesting to look at network traffic using a packet sniffer such as Wireshark. Browse to a website in Firefox and (assuming GZip encoding is disabled in the web-browser or on the server) you'll be able to see how the data is transferred. This works for other protocols as well. Reading the RFCs for various protocols can also give you some insight. For a few examples, IRC (1459), FTP (959), HTTP 1.1 (2616). You can find them at the Internet Engineering Task Force website.

Sorry for the lack of links, the spam protection shot me down for not having enough reputation.

Ryan Mentley
+1 for some reputation. Plus it's a good answer :)
Jacob
Right now, I'm making apps for iPhone but thats kinda getting boring (i haven't even been doing it for long) now im getting into networking with programs and then web development. Will the info from this help me later with web development?
@shorty876 Understanding the HTTP protocol will help you with web development more than Network Programming. I'm not saying that Network programming won't help, but web programming exclusively deals with HTTP.
Stargazer712
Sounds good, Thanks everyone.