Original Post
I have a few questions about network programming. I do have experience in network programming, it's limited but I understand the concept of how TCP and UDP work. I have designed a few peices of small software (testing) that uses both TCP and UDP-- so yes, I understand the concept. First off, I'm using C# 2.0. I have plenty of experience in C#... but I never used anything networking-related to C# or .NET for that matter. I'm planning to design a full-scaled networking code in C# for use in all of the software I create (it won't be free avaliable). So it has to be scalable, of course. The most important thing is it MUST be fast to use, also it must use the least possible memory as possible. The code will be used in multiplayer games (at least handling 200 players at a time, if not more!), instant messaging software, voice chat software (like Teamspeak/Ventrilo), video streaming, updating/downloading software, etc. The most important is that it can work in the game I'm developing. So... here's my questions. 1. Should the server be multithreaded? This is a lot harder, but can pay off-- is it worth it? *Note: The server for the game will ahve to load maps, scripts (npcs), etc.. so is it almost required? 2. Use low-level "sockets" or use the built in "TCPClient", "TCPListener", "UDPClient"? 3. For the game, should I use strictly UDP or TCP? I've had people tell me to use UDP for movement/game related, and TCP for chatting/etc. I prefer UDP. My game will be a 2D MMORPG with NPCs and other things. I can't think of anything else at the moment-- long day at work. If someone could answer my three questions, I'd apperciate it.