【发布时间】:2013-09-09 19:01:11
【问题描述】:
我制作了一个多线程游戏模拟服务器(它使用异步套接字)。我已经实现了一个调试器,它允许我跟踪抛出的异常。一段时间后,弹出“已建立的连接被主机中的软件中止”异常 - 而且这种情况在一段时间内发生得越来越多,导致游戏冻结。根据调试器,异常是在 EndSend 方法的 catch 块中引发的。该程序在 Windows 上运行。但是,当它在 linux 上运行时,触发了另一个异常:“套接字已关闭”。
你认为问题是什么?经过几天的互联网研究,我一无所获。
【问题讨论】:
-
这没什么不寻常的。客户没有很好地说“再见”就断开了连接。当然,当你没有一个协议让它说“再见”时,你可以通过关闭自己的套接字来响应它,那么它会发生很多。
-
@HansPassant,这就是我远离套接字的原因。 :D
标签: c# .net multithreading sockets exception