/* * server.c - main */ #include #include "tcplib.h" #define ECHOPORT 7788 /* a non-privilege port so all can use */ #define MAX 1024 int main(int argc,char *argv[]) { int s, t; char buf[MAX]; int size; int number; char * urls = "http://www.cnn.com\0http://www.abc.com"; s = socketServer(ECHOPORT); while (1) { if (s > 0) t = acceptConn(s); else { fprintf(stderr," socket error\n"); exit(1); } if (t > 0) { if ((size = read(t, (char *)&number, sizeof(int))) < 0) { fprintf(stderr," read error\n"); exit(3); } number = ntohl(number); fprintf(stdout, "int read : %d\n", number); number = 2; // two urls if (write(t, (char *)&number, sizeof(int)) < 0) { fprintf(stderr," write error 2\n"); exit(1); } number = 37; // 37 bytes to send if (write(t, (char *)&number, sizeof(int)) < 0) { fprintf(stderr," write error\n"); exit(4); } if (write(t, urls, number) != number) { fprintf(stderr," write error1\n"); exit(1); } } else { fprintf(stderr," connection error\n"); exit(2); } close(t); } /* while(1) */ close(s); return 0; }