思想:
主进程专门用于连接多个客户端的请求,若有一条客户端连接进来,主进程就创建一个子进程,用该子进程来处理客户端的业务数据。
tcp_server.c
#include <sys/types.h>
#include <sys/socket.h>
#include <stdio.h>
#include <string.h>
#include <netinet/in.h>//sockaddr_in
#include <unistd.h>
#include <arpa/inet.h> // 包含 inet_addr 函数的声明
#include <pthread.h>
#define BUF_SIZE 20
void *ThreadFunc(void *arg)
{
int iClient = *(int *)arg;
char buf[BUF_SIZE] = {0};
int ret = -1;
while(1){
ret = recv(iClient, buf, BUF_SIZE, 0);
if(ret <= 0){
printf("recv error!\r\n");
close(iClient);
pthread_exit("thread exit");
}
printf("server recv data:%s\r\n",buf);
//send
send(iClient, buf, BUF_SIZE,