我有一个用C#编写的代理服务器,作为Windows服务运行。它监听127.0.0.1:xxxxx,其中xxxxx可以是从53500开始的一系列端口。
代理工作得非常好,但有时某些端口会停止响应,当我尝试telnet到它们时,它会显示请求超时或未响应。
我无法在开发区域中复现此问题,但我认为这与某些原因导致BeginReceive在EndReceive之后未被调用有关。以下引用摘自我正在经历的症状的线程。
"使用异步通信时类似的问题是,当存在执行路径时,该路径不会在完成先前的EndReceive后调用BeginReceive。这使套接字对远程端发送的所有进一步数据都毫不知情。"
是否有一种方法模拟端口停止响应的情况?我想编写一些代码,在继续请求之前检查端口是否响应。如果没有响应,我可以删除该端口上的侦听器并重新添加。这是一种临时措施,以防止代理崩溃,直到我确定问题的原因。
我还添加了一些额外的日志记录,以确定是什么导致端口停止响应。
代理工作得非常好,但有时某些端口会停止响应,当我尝试telnet到它们时,它会显示请求超时或未响应。
我无法在开发区域中复现此问题,但我认为这与某些原因导致BeginReceive在EndReceive之后未被调用有关。以下引用摘自我正在经历的症状的线程。
"使用异步通信时类似的问题是,当存在执行路径时,该路径不会在完成先前的EndReceive后调用BeginReceive。这使套接字对远程端发送的所有进一步数据都毫不知情。"
是否有一种方法模拟端口停止响应的情况?我想编写一些代码,在继续请求之前检查端口是否响应。如果没有响应,我可以删除该端口上的侦听器并重新添加。这是一种临时措施,以防止代理崩溃,直到我确定问题的原因。
我还添加了一些额外的日志记录,以确定是什么导致端口停止响应。