一、多进程实现并发服务器
代码如下:multiprocess_server.c
/*
============================================================================
Name : TCPServer.c
Author : jiangyu
Version :
date : 2018-10-8
Description : Simple Socket Server
============================================================================
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <signal.h>
#define MYPORT 8080
int main( int argc , char ** argv )
{
signal(SIGCHLD,SIG_IGN);//把子进程的僵尸进程给init进程处理
struct sockaddr_in saddr, caddr;
char send_buf[1024];
char recv_buf[1024];
char ipbuf[50];
int sockfd, connfd;
int addr_len;
pid_t pid;
sockfd = socket( AF_INET, SOCK_STREAM, 0 );
memset(&saddr, 0, sizeof(saddr) );
memset( send_buf, 0, sizeof(send_buf) );
memset( recv_buf, 0, sizeof(recv_buf) );
memset( ipbuf, 0, sizeof(ipbuf) );
saddr.sin_family = AF_INET;
saddr.sin_port = htons(MYPORT);
saddr.sin_addr.s_addr = htonl( INADDR_ANY ); //any address
bind( sockfd, (struct sockaddr *)&saddr, 16 );
listen( sockfd, 20 );
printf( "Accepting connections ... \n" );
int n;
addr_len = sizeof( caddr );
/