Presentation is loading. Please wait.

Presentation is loading. Please wait.

Socket Programming Sample Code - simple chat client and server ee122 sp05 daron spektor.

Similar presentations


Presentation on theme: "Socket Programming Sample Code - simple chat client and server ee122 sp05 daron spektor."— Presentation transcript:

1 Socket Programming Sample Code - simple chat client and server ee122 sp05 daron spektor

2 #include int main() { int serverfd, clientfd; struct sockaddr_in myaddress; struct sockaddr_in cliaddress; char buf[200]; myaddress.sin_family = AF_INET; myaddress.sin_port = htons(12205); myaddress.sin_addr.s_addr = htonl(INADDR_ANY); memset(&(myaddress.sin_zero), 0, 8); serverfd = socket(AF_INET, SOCK_STREAM, 0); bind(serverfd, (struct sockaddr *)&myaddress, sizeof(struct sockaddr)); listen(serverfd, 2); while (1) { int addrlen = sizeof(struct sockaddr); int len; clientfd = accept(serverfd, (struct sockaddr *)&cliaddress, &addrlen); printf("[[connected to %s]]\n", inet_ntoa(cliaddress.sin_addr)); while (len = recv(clientfd, buf, 200, 0)) { puts(buf); } printf("connection reset\n"); close(clientfd); } return 0; } TCP one-way chat server

3 #include int main() { int serverfd; struct sockaddr_in serveraddress; char buf[200]; serveraddress.sin_family = AF_INET; serveraddress.sin_port = htons(12205); serveraddress.sin_addr.s_addr = inet_addr("127.0.0.1"); memset(&(serveraddress.sin_zero), 0, 8); serverfd = socket(AF_INET, SOCK_STREAM, 0); connect(serverfd, (struct sockaddr*)&serveraddress, sizeof(struct sockaddr)); while (fgets(buf, 200, stdin)) { send(serverfd, buf, strlen(buf)+1, 0); } close(serverfd); return 0; } TCP one-way chat client

4 #include int main() { int serverfd, clientfd, temp; struct sockaddr_in myaddress; struct sockaddr_in cliaddress; char buf[200]; serverfd = socket(AF_INET, SOCK_STREAM, 0); if (serverfd<0) { perror("socket error"); exit(1); } myaddress.sin_family = AF_INET; myaddress.sin_addr.s_addr = htonl(INADDR_ANY); myaddress.sin_port = htons(12205); memset(&(myaddress.sin_zero), 0, 8); temp = bind(serverfd, (struct sockaddr *)&myaddress, sizeof(struct sockaddr)); if (temp<0) { perror("bind error"); exit(1); } if (listen(serverfd, 5)<0) { perror("problem listening"); exit(1); } while (1) { int addrlen = sizeof(struct sockaddr); int len; if ((clientfd = accept(serverfd, (struct sockaddr *)&cliaddress, &addrlen))<0) { perror("accept error"); exit(1); } printf("[[connected to %s]]\n", inet_ntoa(cliaddress.sin_addr)); while (len = recv(clientfd, buf, 200, 0)) { puts(buf); } close(clientfd); if (len==0) { printf("connection reset\n"); } else if (len<0) { perror("recv error"); exit(1); } return 0; } server code with error checking

5 #include int main() { int serverfd; struct sockaddr_in serveraddress; char buf[200]; if ((serverfd = socket(AF_INET, SOCK_STREAM, 0))<0) { perror("socket error"); exit(1); } serveraddress.sin_family = AF_INET; serveraddress.sin_port = htons(12205); serveraddress.sin_addr.s_addr = inet_addr("127.0.0.1"); memset(&(serveraddress.sin_zero), 0, 8); if ((connect(serverfd, (struct sockaddr*)&serveraddress, sizeof(struct sockaddr)))<0) { perror("connect error"); exit(1); } while (fgets(buf, 200, stdin)) { send(serverfd, buf, strlen(buf)+1, 0); } close(serverfd); return 0; } client code with error checking


Download ppt "Socket Programming Sample Code - simple chat client and server ee122 sp05 daron spektor."

Similar presentations


Ads by Google