我想编写一个简单的 UDP 服务器程序,它使用 recvfrom() 接收每个接收到的数据包的数据包,程序将处理它我的原始源代码如下:
for(;;){
n = recvfrom(sockfd, mesg, 10000, 0 ptr_sockaddr, &len);
process(mesg);
}
但是这样一来,如果process()函数需要的时间有点长,就会影响recvfrom(). 所以我需要创建一个新进程或新线程,
- 哪个更适合这种情况?线程还是进程?为什么?
- 如何处理进程间或线程间通信,我的意思是我需要将字符串
mesg传递给新进程(或线程)。如果数据包接收比处理快得多,我应该使用什么样的缓冲方法?
如果能提供一些源代码片段就更好了!
谢谢!