void *panel_tcp_server(void *arg)
{
int server_sockfd;
socklen_t server_len, client_len;
struct sockaddr_in server_address;
struct sockaddr_in client_address;
while(1)
{
server_sockfd = socket(AF_INET, SOCK_STREAM, 0);
server_address.sin_family = AF_INET;
server_address.sin_addr.s_addr = htonl(INADDR_ANY);
server_address.sin_port = htons(2018);
server_len = sizeof(server_address);
int reuse = 1;
setsockopt(server_sockfd, SOL_SOCKET, SO_REUSEADDR, &reuse, sizeof(reuse));
bind(server_sockfd, (struct sockaddr *)&server_address, server_len);
listen(server_sockfd, 2);
client_len = sizeof(client_address);
client_sockfd = accept(server_sockfd,
(struct sockaddr *)&client_address, &client_len);
//建立一个连接之后就关闭server_sockfd,只允许一个连接
close(server_sockfd);
panel_msg_handle(client_sockfd);
client_soc
tcp服务端程序设计——只允许一个客户端连接
最新推荐文章于 2024-07-06 19:41:07 发布
该博客探讨了如何设计TCP服务端程序,确保只允许一个客户端进行连接。通过在建立连接后关闭服务端套接字,并利用SO_REUSEADDR选项,使得端口能迅速重用,从而实现对多个连接请求的限制。
摘要由CSDN通过智能技术生成