我有一个异步服务器运行此MSDN article的稍微修改版本。这一次只允许一个客户端加入。我应该打开和关闭每个事务的套接字吗?
我的问题是,我可以打开和关闭每个事务(它使用TCP)的套接字吗?如果我允许多个客户端加入(通过修改代码来侦听更多的客户端),似乎有些消息是交叉连接的。例如,如果我尝试从两台客户机的服务器上下载文件,则无论哪个客户机最后一次启动都会获取该文件,并且第一次启动该文件。或者,如果我开始从一个客户端发送一些数据,然后从另一个客户端开始,服务器收到了两者的混合。由于我的程序不需要高性能(就像游戏一样),每个事务打开/关闭套接字是否有任何问题,或者是否有更好的方法来处理多个客户端?
编辑 - 我忘记提到监听器本身在整个生命周期中都会保持打开状态,但每个客户端都会为事务本身打开和关闭一个新的套接字。在MSDN链接的代码中,变量是“处理程序”。
HTTP如何管理而不会造成开销? – 2013-02-21 19:07:36
套接字(用于收听)通常在应用程序的整个生命周期中保持打开状态,例如,对于端口80上是TCP套接字的HTTP。每个连接的客户端基本上都存在于它自己的“会话”中。 – MarcF 2013-02-21 19:10:17
我相信他离开了听筒打开,如果我不明白这个问题是错的,他说的是打开和关闭客户端插座 – 2013-02-21 19:12:23