1. 前言
本次使用TCP连接,1个server,多个client。
server和多个client之间,可以互相发送消息。
2. 代码
tcp_sever_fork.cpp 如下:
#include <sys/types.h>
#include <sys/socket.h>
#include <stdio.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
#include <fcntl.h>
#include <sys/shm.h>
#define PORT 8890
#define QUEUE_SIZE 10
#define BUFFER_SIZE 1024
//传进来的sockfd,就是互相建立好连接之后的socket文件描述符
//通过这个sockfd,可以完成 [服务端]<--->[客户端] 互相收发数据
void str_echo(int sockfd)
{
char buffer[BUFFER_SIZE];
pid_t pid = getpid();
while(1)
{
memset(buffer,0,sizeof(buffer));
int len = recv(sockfd, buffer, sizeof(buffer),0);
if(strcmp(buffer,"exit\n")==0)
{
printf("child process: %d exited.\n",pid);
break;
}
printf("pid:%d receive:\n",pid);
fputs(buffer, stdout);
send(sockfd, buff