图4 服务器端程序简单示意图
{ printf("OK--you have successed bind your IP with port %d\n",port);
listencheck=listen(mysocket,howmany);
if(listencheck==-1)
printf("error!!! you have failed listen this port,program end here\n");
return(0); //调用监听函数
sin_size=sizeof(struct sockaddr_in);
newsocket=accept(mysocket,(struct sockaddr*)&addr_remote,&sin_size);
//调用接收函数
if(newsocket==-1)
printf("error!!!failed to got remote connect this server,program end here\n");
return(0); //建立新的socket失败返回
printf("OK-- now have created the newsocket to use this own connection,use this communicate with clint%s\n",inet_ntoa(addr_remote.sin_addr),port);
printf("OK-- server have successed got connect from clint IP = %s,port = %d,now connecting is running;\n",inet_ntoa(addr_remote.sin_addr),port)
pid_t pid;
pid=fork(); //调用fork()建立子进程
if(pid>0)
printf("OK-- i am a father procces,child proccess will continue for you,it's ID= %d,now end newsock and use old socket to listen again................. \n",pid);
close(newsocket);
printf("OK-- i am a child procces,i am responsible for this new communicate,blow i will do for connect\n");
printf("OK-- please enter your data which you want to send n");
while(1)
bzero(sendbuffer,long);
scanf("%s",sendbuffer);
sendcheck=send(newsocket,sendbuffer,strlen(sendbuffer),0); //发送数据
if(sendcheck==-1)
printf("error!!!failed to send to remote\n");
close(newsocket);
else
printf("OK--now you have send %d byte data to remote!!!pleases send again!!!!\n",sendcheck);