왜 함수 읽기가 항상 -1을 반환하는지 이해할 수 없습니다. '\ n'이 나타날 때까지 소켓에서 읽고 싶습니다!TCP 소켓 C에서 읽기
char* msg = (char*)malloc(sizeof(char)*120);
nleft = sizeof(msg);
while(nleft>0){
n = read(fdTcp, msg, nleft);
if(n == -1){
printf("error reading UPC\n");
exit(1); //error
}
else if (n == 0){
printf("end of reading EOF\n");
break; //closed by peer
}
nleft-=n;
msg += n;
}
nread = n-nleft;
msg[nread] = '\0';
printf("mensagem do CS: %s\n", msg);
미리 감사드립니다. msg
이후
자세한 정보를 얻으려면'if (n == - 1) {'브랜치에서'printf ("% s \ n", strerror (errno))'를 사용할 수 있습니다. – user3125367
sizeof (msg)가 message의 문자 수와 같지 않습니다. – Deepak
하지만 지금은 얼마나 많은 바이트를 읽지 않겠습니까? '\ n'에 도달 할 때까지 준비하고 싶습니다. 어떻게 할 수 있습니까? – user3100832