当谈论 C# 中的套接字编程时,术语“阻塞”是什么意思?
我需要构建一个服务器组件(可能是 Windows 服务)来接收数据、进行一些处理并将数据返回给调用者。呼叫者可以等待回复,但我需要确保多个客户端可以同时呼叫。
如果客户端 1 连接并且我花了 10 秒来处理他们的请求,那么 2 秒后客户端 2 调用的套接字是否会被阻止?或者服务是否会开始在不同的线程上处理第二个请求?
总之,我的客户可以等待响应,但我必须能够同时处理多个请求。
阻塞意味着您发出的调用(发送/接收)在底层套接字操作完成之前不会返回(“阻塞”)。
对于读取,这意味着直到收到一些数据或关闭套接字为止。
对于写入来说,意味着缓冲区中的所有数据都已发送出去。
为了处理多个客户端,为每个客户端启动一个新线程/将工作交给线程池中的线程。
连接的 TCP 套接字无法共享,因此无论如何每个客户端都必须有一个套接字。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)