网络编程中的多客户端处理与Tcl语言基础
多客户端处理的socket编程
在网络编程中,socket可用于进一步的连接。若服务器未立即接受新连接,这些连接请求会在队列中等待。由于原始socket仍可用,且socket可作为文件描述符,这为同时服务多个客户端提供了方法。服务器可通过 fork 创建子进程,子进程会继承打开的socket,从而与客户端通信,而主服务器继续接受新的客户端连接。
为避免产生僵尸进程,服务器需忽略 SIG_CHLD 信号。以下是处理多客户端的 server4.c 程序示例:
#include <sys/types.h>
#include <sys/socket.h>
#include <stdio.h>
#include <netinet/in.h>
#include <signal.h>
#include <unistd.h>
int main()
{
int server_sockfd, client_sockfd;
int server_len, client_len;
struct sockaddr_in server_address;
struct sockaddr_in client_address;
server_sockfd = socket(AF_INET, SOCK_STREAM, 0);
server_address.sin_family = AF_INET;
serve
超级会员免费看
订阅专栏 解锁全文
1362

被折叠的 条评论
为什么被折叠?



