我需要每 0.02 秒向另一个进程发送数据。
服务器代码:
//set socket, bind, listen
while(1){
sleep(0.02);
echo(newsockfd);
}
void echo (int sock)
{
int n;
char buffer[256]="abc";
n=send(sock,buffer,strlen(buffer),0);
if (n < 0) error("ERROR Sending");
}
客户端代码:
//connect
while(1)
{
bzero(buffer,256);
n = read(sock,buffer,255);
printf("Recieved data:%s\n",buffer);
if (n < 0)
error("ERROR reading from socket");
}
问题是:
客户端显示如下内容:
Recieved data:abc
Recieved data:abcabcabc
Recieved data:abcabc
....
它是如何发生的?当我设置睡眠时间时:
...
sleep(2)
...
没关系:
Recieved data:abc
Recieved data:abc
Recieved data:abc
...