I don't think you quite got what I was trying to say. No matter what language you are using, if you supply an argument to a function that is out of bounds, whether it be in C, C++, or any other language you have a bug in your code. If you don't keep in mind the size of your data and expect the language to do it all for you, thats lazy. I am sorry, if I have an array of 20, and I try to access or set foo20, that is a bug, I don't care if the language protects me or not from it, its just bad practice.
Back to his question, is C good or should he go with something else? As I said, all can accomplish his task, C++ would be a better choice for modularity, which is a great thing to have in a game server. If its just a quick and dirty test, C might be a better choice, as development would be a tad faster and simpler(assuming he knows both C and C++). But if he ever wanted to use it as a base for a larger project, it would be harder to adapt to his new requirements, and would be harder to maintain.
Any vulnerabilities in a C server are just as possible with C++/C#. Proper diligence in design and testing is more important than what language you choose.