2010-07-19 96 views
0

我正在为C#中的在线游戏编写一个简单的代理(更多的数据包记录器)。所有的数据包都被代理接收到,但有些数据包没有发送到客户端(不确定服务器)。 例如:为什么不是所有的数据包都发送到客户端?

客户端 - >服务器:登录数据包 - 我的代理接收数据包并将其显示并发送到服务器。

服务器 - >客户端:连接!数据包 - 我的代理再次接收数据包,它也显示它并将其发送到客户端。

服务器 - >客户端:聊天频道数据包 - 我的代理再次接收数据包,它也显示它,但客户端没有收到它。没有例外。

我的代码:http://lesderid.pastebin.com/Km7vT2jF

(这是因为这里的同一个项目:Why can't I send to the listening socket anymore?

回答

1

这仅仅是从代码的简单阅读:

  1. 不要绑定到127.0.0.1。改为绑定到IPAddress.Any
  2. OnDataReceivedFromServer需要拨打EndReceive
  3. 我不建议在同一套接字上混合同步(Send)和异步(BeginReceive)操作。
相关问题