Sockets 如何在没有多线程程序的情况下同时生成UDP和TCP流
我的程序如下 发送方:Sockets 如何在没有多线程程序的情况下同时生成UDP和TCP流,sockets,Sockets,我的程序如下 发送方: while(1){ sendto(); // send some data packets usleep(); // delay to avoid overflow } 接收端: while(1){ recvfrom(); // receive } 我希望在receiver while循环中出现一个tcp套接字,它每隔2秒(或每收到100个数据包)从接收方向发送方发送一条控制消息(更改为usleep的时间)。同时,发送方也应该能够在while循环中侦
while(1){
sendto(); // send some data packets
usleep(); // delay to avoid overflow
}
接收端:
while(1){
recvfrom(); // receive
}
我希望在receiver while循环中出现一个tcp套接字,它每隔2秒(或每收到100个数据包)从接收方向发送方发送一条控制消息(更改为usleep的时间)。同时,发送方也应该能够在while循环中侦听此控制消息。没有多线程程序可以实现吗?我想你可以设置一个计时器,以一定的时间间隔轮询tcp套接字。为什么不通过添加另一条UDP消息来使用UDP套接字,告诉接收者更改usleep?谢谢回复。我希望控制消息是可靠的(即TCP)。顺便说一句,如何写一个“如果条件”,它将是真正的每2秒后。然后我可以重新设置计时器并再次循环。在Unix/Linux上,您可以使用
alarm()
和信号处理程序,但要做到这一点可能并不比在另一个线程中容易。您的平台上是否有非阻塞套接字(O_NONBLOCK)和select()?