我正在开发一个客户端服务器程序,用于处理登录,聊天和匹配的游戏。这一切都是c#.net。
我遇到的问题是聊天。聊天工作正常,直到我开始从另一台计算机快速发送聊天。当我在我的笔记本电脑上加载客户端时,我开始粉碎键并尽可能快地发送它会出现类似这样的内容。
Laptop:Hello <--- this is normal
Laptop:Hello2<EOF>msgLaptop: Hello3 <-- this is what happens. Hello3 should
be on the third line without the <EOF>msg.
似乎某些东西没有重置,但我找不到哪里。服务器发出正确的信息,因为我可以看到它的作用。
客户端和服务器都使用异步套接字连接。我几乎使用beginsend方法将数据作为长字符串发送,然后让客户端或服务器解析它。
例如像“msgtheMessage”这样的消息只是说它是聊天的消息。
当收到数据时,它检查标题是'msg',然后检查EOF是否解析出来,然后将其发送到聊天室。
是否有一种处理过快数据的好方法?
顺便说一下,在发送数据的计算机上没有发生这样的情况,只有那些接收它的人,即使服务器转过身并将其直接发送回发送数据的计算机上它