在使用C#进行套接字编程时,术语“阻塞”是什么意思?
我需要构建一个服务器组件(可能是Windows服务),该组件将接收数据,进行一些处理并将数据返回给调用方。呼叫者可以等待答复,但是我需要确保多个客户端可以同时呼叫。
如果客户端1连接并且我花了10秒钟来处理他们的请求,客户端2会在2秒钟后调用该套接字吗?还是该服务将开始在另一个线程上处理第二个请求?
总而言之,我的客户可以等待响应,但是我必须能够同时处理多个请求。
阻塞表示您进行的(发送/接收)调用在基础套接字操作完成之前不会返回(“阻塞”)。
对于读取,这意味着直到接收到一些数据或套接字已关闭。对于写操作,这意味着缓冲区中的所有数据都已发送出去。
为了处理多个客户端,请为每个客户端启动一个新线程/将工作分配给线程池中的线程。
连接的TCP套接字无法共享,因此无论如何每个客户端都必须是一个套接字。
| 归档时间: |
|
| 查看次数: |
4058 次 |
| 最近记录: |