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");
}
클라이언트 코드 :
Recieved data:abc
Recieved data:abcabcabc
Recieved data:abcabc
....
방법 :
이클라이언트 이런 식으로 뭔가를 보여줍니다
//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");
}
문제가된다 그것은 일어날까요? 나는 수면 시간을 설정하면 :
...
sleep(2)
...
를이 확인 될 것입니다 :
Recieved data:abc
Recieved data:abc
Recieved data:abc
...
사용하여 타이머를 선택합니다. 그것은 하나의 소켓과 타이밍으로 당신을 도와줍니다! – xaxxon
2/일치하는 "recv"와 "읽기"와 "쓰기"를 혼합하는 것보다는 2/일치하는 이유는 합법적 인 이유 때문입니다. 읽기/recv는 "recv failed"를 의미하지 않는 -1을 반환합니다 (예 : EINTR). – kfsone