我想写一个可以在一个线程中处理多个客户端的tcp服务器。我真的想坚持一个线程,即使没有隐藏的C#异步线程,所以我想使用Socket.Select
而不是使用异步接收/发送方法。C#Socket.Select and writes
在阅读Select
的文档时,我想知道select如何告诉我它可以发送多少个字节而没有阻塞。它的文档说明如下:
如果您已经建立了连接,则可写性意味着所有发送操作都会成功而不会阻塞。
所以根据文档,似乎我可以发出一个巨大的发送操作,它会成功没有阻塞。但是,如果我发送100兆字节的发送操作,这是如何工作的。当然,套接字的写入缓冲区不能包含那么多的数据,所以套接字必须阻塞或只写入一小部分数据。这个套接字在这里做什么?
'我确实想坚持一个线程,甚至没有隐藏的C#异步线程** ** []没有线程(http:// blog。 stephencleary.com/2013/11/there-is-no-thread.html) – Eser
@Eser:然后简单地忘记我的动机段落,但我仍然对这个问题的答案感兴趣。 – gexicide