Linux 网络编程:多客户请求服务器( C/S )实例
文章由LinuxBoy分享于2019-03-31 08:03:55
Linux 网络编程:多客户请求服务器( C/S )实例
注意:可以开启一个server和多个client,同时可以对server进行发送data处理,请注意client的参数,格式是:./client IP char_data
IP:就是server所在的IP,char_data就是发送的数据
server.c
#include<sys/types.h>
#include<sys/socket.h>
#include<strings.h>
#include<arpa/inet.h>
#include<unistd.h>
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#include<errno.h>
#include<signal.h>
#include<sys/wait.h>
#define
LISTEN_PORT 6000 //!> 端口
#define MAX 5 //!> 最大的等待请求数目
void str_echo( int sockfd) //!> 从client中读取数据
{
ssize_t n;
charline[512];
printf("准备读数据:");
while( 1)
{
while( ( n =read( sockfd, line, 512 ) ) > 0) //!> 注意是:根据accept得到的client的操作描述符来处理的呗~
{
line[n] ='\0';
printf("Client send: %s\n", line );
bzero(&line, sizeof( line )); //!> 再次置NULL
}
}
}
int main( int argc, char ** argv )
{
int listenfd,connfd; //!> 描述符
pid_t childpid; //!> 子进程号
socklen_t chilen; //!>
structsockaddr_in chiaddr, servaddr;
//!> 建立socket( TCP )
//!>
if( (listenfd = socket( AF_INET, SOCK_STREAM, 0 ) ) == -1 )
{
printf("socket error... : %s\n",(char*)strerror(errno));
exit(EXIT_FAILURE );