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
...