Writing UDP client/server in C# vs. C++

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

So I've been tasked with writing a UDP client/server. I finished writing the client/server in C# and now I've been told that it should be written in C++ for scalability (speed). This is for a MMORPG game (Massive Multiplayer Online) so the code must be blazing fast and scalable

I wonder - is there that much of a difference in writing this client/server in C++ using WinSock 2.2 as far as speed and scalability is concerned to warrant writing a new client/server? I'm passing about 50 serialized objects back and forth from client/server/client/etc. .
 
Rob Walker said:
I wonder - is there that much of a difference in writing this client/server
in C++ using WinSock 2.2 as far as speed and scalability is
concerned to warrant writing a new client/server? I'm passing
about 50 serialized objects back and forth from client/server/client/etc.
.. .

I've written large (huge) network applications in both C++ and .NET. While
my .NET apps have been TCP based, I can say without a doubt that scalability
of .NET with regards to TCP is amazing.

Scalable implementations in both environments end up using IOCP - and (in my
opinion) this is alot easer in .NET land using the Async socket methods than
it is in C++.

If you are planning on writing a large and highly scalable network (read:
lots of sockets!) .NET application, you'll have to understand how garbage
collection works, what pinning is, and how to work with (rather than fight)
the garbage collector. This is pretty easy to do...
 
Rob said:
So I've been tasked with writing a UDP client/server. I finished
writing the client/server in C# and now I've been told that it should
be written in C++ for scalability (speed).

Speed != scalability. You can't switch programming languages and thus
achieve scalability. That's dumb management talk. Scalability is mainly
achieved (or ruined) by application architecture, in your case garbage
collection (mis-)behavior and threading.

Cheers,
 
Back
Top