1
소켓에서 데이터 스트림을 읽고 서버에서 전송이 끝나면 읽기를 중지하고 싶습니다. 아래 코드는 else if를 결코 실행하지 않습니다 (왜냐하면 read는 결코 0 바이트를 읽지 않기 때문입니다). 어떻게하면 서버에서 원하는 것을 얻은 후에 깨는 while 루프를 깨거나 수정할 수 있습니까? read
기능 0
를 반환 할소켓에서 읽는 중 끊어짐 조건
while(1){
/* receive answer from server */
t = read(sock, output, MAX);
if (t > 0) {
puts("received smthn");
}
else if (t == 0) {
puts("***ITS OVER***");
} else {
printf("Connection with server terminated.\n");
exit(1);
}
}
무엇 전송 완료 참조 : 서버가 소켓에
close
전화를 잊어 버린 경우 일부 데이터가 소켓에서 읽을 준비가 된 경우, 당신은 읽기 전에 볼을 시도 할 수 있습니다? 피어가 연결을 닫으면 NB'read()'는 0을 반환한다. – EJP
서버가 소켓을 통해 문자열을 전송 중입니다. – Belorenz