我一直在努力调试C#套接字应用程序的问题。该应用程序是我正在从事的大学作业的一部分。分配的范围是使用原始套接字构建Web服务器和游戏/应用程序服务器。就我而言,网络服务器提供静态文件并充当游戏服务器的代理。服务文件似乎运行良好,但是将请求转发到游戏服务器时,会出现数据传输问题。完整的源代码可在GitHub上获取以供参考。但是我认为有问题的区域是该区域,该区域尝试从游戏服务器读取响应正文以响应Web服务器的请求。以下是相关代码:if (header.ContainsKey("content-length")){ var bodyLength = Convert.ToInt32(header["content-length"]); Console.WriteLine($"Receiving body from game server. Expecting {bodyLength} bytes"); body = ReceiveBodyData(socket, bodyLength); Console.WriteLine($"Finished receiving body from game server. Received {body.Length} bytes.");}当它执行此代码时,第一条消息将写入控制台,但是第二条消息从不打印,因为该方法ReceiveBodyData从不返回(最终在试图读取主体数据的无限循环中结束)。检查游戏服务器的输出,我发现连接从头开始是关闭的,但是我不确定这是否会破坏接收者读取数据的能力。任何人都可以协助调试此问题,请仔细确认这是我的工作,因此理想情况下,请不要编写大量代码。
1 回答
- 1 回答
- 0 关注
- 109 浏览
添加回答
举报
0/150
提交
取消