TCP并发服务器是通过创建子进程来处理不同客户端的请求实现的
server.c
/*
** TCP并发服务器
*/
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <netdb.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
#define portnumber 3333
int main( int argc, char *argv[] )
{
int sockfd, temp_fd;
struct sockaddr_in server_addr;
struct sockaddr_in client_addr;
int sin_size;
int nbytes;
char buffer[1024];
int n_fork;
/* (1)分配空间和初始化 */
/* 服务器端开始建立sockfd描述符 */
if( ( sockfd = socket(AF_INET, SOCK_STREAM, 0) ) == -1 )
{ // AF_INET:IPV4;SOCK_STREAM:TCP
perror("call to socket");
exit(1);
}
/* 服务器端填充 sockaddr结构 */
bzero( &server_addr, sizeof(struct sockaddr_in) ); //server_addr初始化置0
server_addr.sin_family = AF_INET; //internet
server_addr.sin_addr.s_addr = htonl(INADDR_ANY); //INAD