【发布时间】:2018-10-02 22:33:54
【问题描述】:
我正在用 C 语言编写并创建一个服务器,该服务器一次接收来自多个不同客户端的连接。但是,第一次连接关闭后,服务器就无法再次连接了。
server.c:
#include <stdio.h>
#include <stdlib.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <unistd.h>
int main() {
while(1) {
char server_message[256] = "You have reached the server!";
//Create a socket
int server_socket;
server_socket = socket(AF_INET, SOCK_STREAM, 0);
//Define the server address
struct sockaddr_in server_address;
server_address.sin_family = AF_INET;
server_address.sin_port = htons(9002);
server_address.sin_addr.s_addr = INADDR_ANY;
//Bind the socket to the IP and port
bind(server_socket, (struct sockaddr *) &server_address,
sizeof(server_address));
//Listen for connections
listen(server_socket, 5);
//Accept the connection
int client_socket = accept(server_socket, NULL, NULL);
//Send message
send(client_socket, server_message, sizeof(server_message), 0);
//Close the socket
close(server_socket);
}
return 0;
}
【问题讨论】: