select()可以用于客户端,而不仅仅是服务器吗?
我想创建一个进行多个连接的TCP客户端,而从它们接收数据的select()循环在一个单独的线程中运行。我不确定这是否可行,因为select()循环已经在运行,因此我不知道它是如何“注意到”即使线程安全问题得到处理也会添加新的套接字。
有没有办法做到这一点,或者我必须生成一个新线程并在每次建立新连接时使用recv()?
(为清晰起见编辑。)
没有找到相关结果
已邀请:
3 个回复
蕾跨立锌煤
函数接受三组文件句柄,一组用于读取,一组用于写入,一组用于错误。只需将您的套接字添加到读取集中,当服务器向您发送内容时您会被注意到。 此页面包含显示如何完成此操作的代码。
室邢
乏摩纶誊伟
。安排完成后,线程也会在新连接上
,然后在管道上写一个字节。这会导致线程退出
。当它注意到管道是可读的时,它会读取字节以“重置”管道,以便它可以再次使用,更新其文件描述符集,然后返回到
ing。