【发布时间】:2012-05-31 12:19:29
【问题描述】:
我很困惑:是否可以/建议组合线程并在 fd 上选择? 例如:我想制作一个线程化的 tcp 客户端-服务器程序,客户端可以向服务器发送消息,服务器将其传播给所有连接的客户端(客户端可以继续通信)。
我制作了一个服务器-客户端程序,所有客户端在连接时都有一个单独的线程;但我在beej指南中读到“如果你在accept()调用上阻塞怎么办?你将如何同时接收recv()数据?“使用非阻塞套接字!”没办法!你不想要成为 CPU 猪。然后呢?”
我不明白在这种情况下阻塞意味着什么;因为在我的程序中,当我输入文本并按下输入时,文本会发送到服务器,但为什么他的意思是同时接收数据?当我输入文字时?这怎么可能?我想我很困惑:p 比我认为这些是处理程序的完全不同的方式,但我又没有看到选择提供的优势? 谢谢
【问题讨论】:
标签: c multithreading select tcp client-server