#include #include #include #include #include main() { int fd; struct sockaddr_in sin, cli; int s; int s2; int icli; int ird; int iwd; int i, j; char szBuf[3000]; FILE *net_par; char srv_id[10], srv_ip[50], srv_port[10]; /*************************net.par************************/ if ((net_par = fopen("net.par", "r")) == NULL) printf("Usage:[net.par] could not opened\n"); else { fscanf(net_par, "%s\t%s\t%s\n", srv_id, srv_ip, srv_port); } fclose(net_par); printf("SERVER: port assined %d\n", atoi(srv_port)); /*************************************************/ if ((fd = open("svr.m2v", O_RDONLY | O_SYNC)) == -1) { printf("Error open file.\n"); exit(1); } printf("SERVER: detected media file svr.m2v ..\n"); printf("SERVER: transmission cache prepared..\n"); s = socket(AF_INET, SOCK_STREAM, 0); bzero(&sin, sizeof(sin)); sin.sin_family = AF_INET; sin.sin_addr.s_addr = htonl(INADDR_ANY); sin.sin_port = htons(atoi(srv_port)); bind(s, (struct sockaddr *) &sin, sizeof(sin)); listen(s, 4096); printf("SERVER: Waiting for connection ...\n"); s2 = accept(s, (struct sockaddr *) &cli, &icli); printf("SERVER: Accepting socket \n"); /* printf("Connection is accepted\n");*/ i = 1; /* printf("IP %x.\n", ntohl(cli.sin_addr.s_addr));*/ ird = read(fd, szBuf, 2048); iwd = write(s2, szBuf, ird); printf("SERVER: Connection is accepted from %s \n", inet_ntoa(cli.sin_addr.s_addr)); while ((ird = read(fd, szBuf, 2048)) > 0) { printf("."); iwd = write(s2, szBuf, ird); /* printf("Tracing %d. %d %d\n", i++, ird, iwd); */ } printf("\nSERVER: transmission successful. error rate=0%\n"); close(s2); close(s); close(fd); }