Products
GG网络技术分享 2025-11-13 05:30 6
c
int main { int sockfd, newsockfd, portno; socklent clilen; char buffer; struct sockaddrin servaddr, cliaddr; int n, pid;

// 创建socket
sockfd = socket;
if {
perror;
exit;
}
// 初始化服务器地址结构
bzero &serv_addr, sizeof);
portno = 5001; // 服务器端口号
serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.s_addr = INADDR_ANY;
serv_addr.sin_port = htons;
// 绑定socket到端口
if &serv_addr, sizeof) <0) {
perror;
exit;
}
// 监听端口
listen;
clilen = sizeof;
while {
// 收下连接
newsockfd = accept &cli_addr, &clilen);
if {
perror;
exit;
}
// 创建子进程处理新鲜的连接
pid = fork;
if {
perror;
exit;
}
if { // 子进程
close; // 关闭主socket, 只用新鲜的socket
bzero;
n = read;
if {
perror;
exit;
}
printf;
n = write;
if {
perror;
exit;
}
close;
exit;
} else {
close; // 父进程关闭新鲜的socket
}
}
close;
return 0;
}
这段代码是一个C语言编写的服务器端程序,用了TCP协议,Neng收下优良几个客户端连接。服务器端会为个个连接创建一个新鲜的子进程,以处理客户端的数据传输。服务器端监听端口5001, 当接收到客户端求时会创建一个子进程来处理该求,父进程接着来监听其他客户端的求。
Demand feedback