上一篇博文讲了如何利用子进程实现多个客户端和服务器端进行通信,
那么,这一篇博客就来实现一下如何利用线程实现多个客户端和服务器端进行通信
代码实现:
ser1.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <unistd.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <pthread.h>
void *fun(void *arg)
{
int c = (int)arg;
while(1)
{
char buff[128] = {0};
if(recv(c,buff,127,0) <= 0)
{
break;
}
printf("buff = %s",buff);
send(c,"OK",2,0);
}
close(c);
pthread_exit(NULL);
}
int main()
{
int sockfd = socket(AF_INET,SOCK_STREAM,0);//tcp
assert(sockfd != -1);
struct sockaddr_in saddr,caddr;
memset(&saddr,0,sizeof(saddr));
saddr.sin_family = AF_INET;
saddr.sin_port = htons(6000);
saddr.sin_addr.s_addr = inet_addr("127.0.0.1");
int res