我需要在C中實現服務器/客戶端代碼。 服務器需要能夠在此時正好接受四個連接。
我不能得到這個工作。我到目前爲止已經完成:
1.創建一個套接字
2.它設置爲非阻塞:fcntl(sock,F_SETFL, O_NONBLOCK);
3.將其綁定
4.聽:listen(sock, 4);
具有多個客戶端的客戶端/服務器體系結構
這我不是部分相當確定的是如何接受客戶的連接。我的代碼看起來是這樣的:
while (1) {
if ((sockfd = accept(sock, (struct sockaddr *) &client_addr, &client_size)) < 0) {
perror("Error\n");
}
read(sockfd, &number, sizeof(number));
write(sockfd, &number, sizeof(number));
}
當我執行客戶端和服務器端的代碼,客戶端似乎是寫東西的插座,其服務器從不接收和整個執行塊。 接受來自多個客戶端的連接的正確方法是什麼?
非常感謝你的詳細解釋。我得到它的工作,終於! – Maggie 2012-02-04 09:13:08