为什么没有将所有数据包发送到客户端?

发布于 2024-09-10 18:55:51 字数 542 浏览 2 评论 0原文

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

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

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

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

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

(这是与此处相同的项目: 为什么我不能再发送到监听套接字?< /a>)

I'm writing a simple proxy (more a packet logger) for an online game in C#. All the packets get received by the proxy but some aren't sent to the client (not sure about the server).
For example:

Client->Server: Login Packet - My proxy receives the packet, displays it and sends it to the server.

Server->Client: Connected! Packet - My proxy again receives the packet, it also displays it and sends it to the client.

Server->Client: Chat channels packet - My proxy again receives the packet, it also displays it but the client doesn't receive it. There is no exception.

My code: http://lesderid.pastebin.com/Km7vT2jF

(This is the same project as here: Why can't I send to the listening socket anymore?)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我的痛♀有谁懂 2024-09-17 18:55:51

这只是对代码的简要阅读:

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

This is just from a brief reading of the code:

  1. Do not bind to 127.0.0.1. Bind to IPAddress.Any instead.
  2. OnDataReceivedFromServer needs to call EndReceive.
  3. I don't recommend mixing synchronous (Send) and asynchronous (BeginReceive) operations on the same socket.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文