Right now I am developing a game consisting of a server made in C# .NET with database and a client for mobile devices in Unity3D.
I am using my own networking library with TCP.
The problem is: I am really afraid of people exploiting my networking code. So I know I can solve problems with the client by testing, testing, testing.
But what if someone writes their own client and doesnt keep my protocol? Right now I have a protocol which contains ( length of message | type of message | data ). What should I do if someone sends a request with a wrong length? Should I catch this case and just close the connection?
I think there are many cases my game server could crash. Is there any way of making sure someone can't crash my game server?
Maybe you guys can help me or point me to a paper which has this issue as a subject.
Thanks in advance!