我在客户端和服务器之间有一个 TCP 多线程通信。我不知道为什么第三次使用 read 函数时它只给出 0。
while(1)
{
/* citirea raspunsului dat de server
(apel blocant pina cind serverul raspunde) */
if (read(sd, msg, 1024) < 0) {
perror("[client]Eroare la read() de la server.\n");
return errno;
}
/* afisam mesajul primit */
printf("[client]Mesajul primit este: %s\n", msg);
if(strcmp(msg, "Conexiune incheiata") == 0)
break;
memset(mesaj,0,256);
cin>>mesaj;
/* trimiterea mesajului la server */
if (write(sd, mesaj, 1024) <= 0) {
perror("[client]Eroare la write() spre server.\n");
return errno;
}
}
/* inchidem …Run Code Online (Sandbox Code Playgroud)