Nan*_*iao 8 c unix sockets multithreading
有一个线程喜欢这个:
{
......
while (1)
{
recv(socket, buffer, sizeof(buffer), 0);
......
}
close(socket);
}
Run Code Online (Sandbox Code Playgroud)
因为线程在recv()调用时阻塞,我怎么能让线程正常退出?
你可以打电话: -
shutdown(sock, SHUT_RDWR) //on the remote end
Run Code Online (Sandbox Code Playgroud)
看看这个.
不要阻止recv.而是在'select'上实现一个块并测试输入fdset以确定是否有任何东西要读取.
如果有要读取的数据,请调用recv.如果没有,请循环,检查'isrunning'volitile布尔变量,该变量在启动关闭时由另一个线程设置.
| 归档时间: |
|
| 查看次数: |
5767 次 |
| 最近记录: |