#include "def" main(argc, argv ) int argc; char *argv[]; { int sd, psd; struct sockaddr_in ServerInfo; struct sockaddr_in ClientInfo; char buf[1024]; char cmd[1024]; int cc; int len; if (argc != 2) { printf("Usage simcloseServer \n"); exit (-1); } sd = socket (AF_INET,SOCK_STREAM,0); ServerInfo.sin_family = AF_INET; ServerInfo.sin_addr.s_addr = htonl(INADDR_ANY); ServerInfo.sin_port = htons(atoi(argv[1])); if ( bind( sd, (SA *) &ServerInfo, sizeof(ServerInfo) ) < 0) { printf("bind error\n"); exit(-1); } listen(sd,1); for (;;) { printf("accepting...\n\n\n\n"); len = sizeof(ClientInfo); if ((psd = accept(sd, (SA *) &ClientInfo, &len)) < -1) { perror("error accepting"); } sprintf (cmd, "netstat -a | grep %d | awk -F\" \" '{print $1, $2, $7}' \n", ntohs(ClientInfo.sin_port) ); printf(cmd); close (psd); printf("Closed socket\n"); system(cmd); } }