网络编程:服务器模型-并发服务器-多线程实现并发服务器

思想:

主进程专门用于连接多个客户端的请求,若有一条客户端连接进来,主进程就创建一个子进程,用该子进程来处理客户端的业务数据。

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, 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值