我正在为一个处理登录、聊天和配对的游戏开发客户端服务器程序。这一切都是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.
似乎有些东西没有被重置,但我找不到在哪里。服务器发出正确的信息,因为我可以看到它在做什么。
客户端和服务器都使用异步套接字连接。我几乎使用 beginend 方法将数据作为长字符串发送,然后让客户端或服务器解析它。
例如像“msgtheMessage”这样的消息只是说它是一个聊天消息。
当收到数据时,它会检查标头,即“msg”,然后检查 EOF 是否将其解析出来,然后将其发送到聊天室。
有没有一种处理输入速度过快的数据的好方法?
顺便说一句,它不会像发送数据的计算机那样发生,只有接收数据的计算机才会发生这种情况,即使服务器转身并将其直接发送回发送相同数据的计算机。