gpt4 book ai didi

c# - 我应该在每个事务中打开和关闭套接字吗?

转载 作者:太空宇宙 更新时间:2023-11-03 21:50:04 25 4
gpt4 key购买 nike

我有一个异步服务器运行这个 MSDN article 的略微修改版本.这一次只允许一个客户端加入。

我的问题是,我可以为每个事务打开和关闭套接字吗(它使用 TCP)?如果我允许多个客户端加入(通过修改代码监听更多客户端),似乎有些消息是交叉连接的。例如,如果我尝试从两个客户端的服务器下载一个文件,最后启动的客户端获取文件,第一个超时。或者,如果我开始从一个客户端发送一些数据,然后从另一个客户端开始,服务器会收到两者的混合。

由于我的程序不需要高性能(就像游戏那样),每次事务打开/关闭套接字是否有任何问题,或者是否有处理多个客户端的更好方法?

编辑 - 我忘了提到监听器本身将在整个生命周期内保持打开状态,但每个客户端都会为事务本身打开和关闭一个新套接字。在MSDN链接中的代码中,变量是“handler”。

最佳答案

打开和关闭套接字有开销,所以简短的回答是否定的(在监听端)。不过,这只是最佳实践,所以如果您不担心这一点,请使用任何有效的方法。

当涉及到客户端时,套接字的使用实际上取决于您计划发送数据的频率。如果不频繁,那么短时间打开套接字可能是常态。如果您注意到任何类型的“串扰”,这很可能是由于您的代码中存在错误。如需一些引用资料,请查看 MSDN 上的 TcpClient 和 TcpListener 类。

关于c# - 我应该在每个事务中打开和关闭套接字吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15010255/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com