我正在做一個Unix,C的作業。我正在創建一個服務器和一個將互相交互的客戶端。我很確定我已經建立了基本框架,但是當我嘗試發送/接收消息時,它不起作用。如何使用套接字在服務器和客戶端之間進行通信? [C]
這裏是服務器while循環代碼,我想只顯示相關代碼:
while(1) {
clntAdrLen = sizeof(clntAddr);
clntFd = accept(srvrFd, (struct sockaddr*)&clntAddr, NULL);
if (fork() == 0) {
send(clntFd, "YourMessage", 12, NULL);
close(clntFd);
exit(0);
} else {
close(clntFd);
}
}
這裏是客戶端的代碼:
do {
result = connect(srvrFd, (struct sockaddr*)&srvrAddr, srvrLen);
if(result==-1) {
sleep(1);
}
recv(srvrFd, buf, sizeof(buf), NULL);
printf("%s", buf); //here I try to print the message sent by server
} while (result==1);
當我運行這兩個服務器和客戶端,它應該打印「YourMessage」。相反,它打印:
N0�,
我只是做錯了?由於
你能打印clntFd的值嗎? – carlosdc
哦,他打印「-1」。不好。你認爲這是客戶的問題嗎? –
是。這是你所有問題的核心。 – carlosdc