我正在开发开源套接字服务器库:https://sourceforge.net/projects/socketservers/ https://sourceforge.net/projects/socketservers/
我想向这个库添加套接字重用功能。我已经实现了此功能的草案,但我在测试中没有看到任何好处。客户端与服务器进行 8 项 32K 连接断开并测量时间。但重用套接字和不重用套接字之间没有区别 - 此测试花费的时间相同。
我在测试中做错了什么?
重用套接字时服务器应该获得什么好处,以及如何衡量这种好处?
我可以从不受管理的角度解释会发生什么以及如何DisconnectEx()
使用后,也许有人可以将其映射到托管场景。
在非托管代码中,您将使用DisconnectEx()
为后续重用套接字AcceptEx()
or ConnectEx()
打电话,更有可能是前者。因此,您最初创建 x 套接字并使用以下命令发布重叠的异步接受操作AcceptEx()
。当客户端连接到这些挂起的连接时,您将执行服务器的操作,然后在最后调用DisconnectEx()
在套接字上并发布一个新的AcceptEx()
使用该套接字。这避免了此时创建新套接字的需要,因此对服务器来说更加高效。性能差异可能非常小,但在接受大量短期连接的负载较重的服务器上值得拥有。
所以我建议你发布一些代码来显示你在调用后如何重用你的套接字Disconnect(true)
在上面...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)