#include #include #include #include #include #include #define M (4) int main(int argc,char **argv) { int sock; struct sockaddr_in addr; static char buf[16+1]; static char buf2[3600]; int n,i; int j; int k; int ii; static char fn[64],dn1[64],dn2[64],s[64],ss[64]; FILE *fp; int port; sscanf(argv[1],"%d",&port); // Port = 20000 etc. // argv[2]: path for file save sock = socket(AF_INET,SOCK_DGRAM,0); addr.sin_family = AF_INET; addr.sin_port = htons(port); addr.sin_addr.s_addr = INADDR_ANY; bind(sock,(struct sockaddr *)&addr,sizeof(addr)); for (ii=0;;ii++) { //printf("%d\n",ii); //memset(buf,0,sizeof(buf)); n=recv(sock,buf2,sizeof(buf2),0); if (n==16) { for (j=0;j<16;j++) buf[j]=buf2[j];buf[16]=0; //printf("%d - %s\n",n,buf); //for (k=0;k %s/%s/%s/%s.gz",argv[2],dn1,dn2,fn); fp=popen(s,"w"); fwrite(buf2,sizeof(buf2),1,fp); pclose(fp); } } close(sock); exit(0); }