服务器端
#include<stdio.h>
#include<stdlib.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<sys/un.h>
#include<sys/wait.h>
#include<errno.h>
#include<unistd.h>
#include<signal.h>
#include<netdb.h>
void sig_handler(int signo)
{
pid_t pid;
int stat;
pid=waitpid(-1,&stat,WNOHANG);
while(pid>0){
printf("child process terminated (PID:%ld)\n",(long)getpid());
pid=waitpid(-1,&stat,WNOHANG);
}
return ;
}
typedef struct {
char s[10];
float a;
float b;
char m[1024];
}Message;
int main(int argc,char *argv[])
{
socklen_t clt_addr_len;
int listen_fd;
int com_fd;
int ret;
int result,a,b;
int s[2];
static char recv_buf[1024];
int len;
int port;
pid_t pid;
char *delim = " ";
char *p;
char *c;
struct sockaddr_in clt_addr;
struct sockaddr_in srv_addr;
//服务器端运行时要给出端口信息,该端口为监听端口
if(argc!=2){
printf("Usage:%s port\n",argv[0]);
return 1;
}
//获得输入的端口
port=atoi(argv[1]);
//设置信号处理函数,也可以使用sigaction函数
if(signal(SIGCHLD,sig_handler)<0){
perror("cannot set the signal");
return 1;
}
//创建套接字用于服务器的监听
listen_fd=socket(PF_INET,SOCK_STREAM,0);
if(listen_fd<0){
perror("cannot c