#include #include #include #include #include #include #include #define MAXLEN 500 int main() { int sock, cli; struct sockaddr_in server, client; unsigned int len; char mesg[] = "Connection Successful | "; char enteryourname[] = "Enter your name: "; char yournameis[] = "Your name is: "; char name[MAXLEN]; char resp[MAXLEN]; char ask[] = "Are you alive?"; char yes[] = "You picked yes."; char other[] = "You moron..."; int sent; int get; if((sock = socket(AF_INET, SOCK_STREAM,0)) == -1) { perror("socket: "); exit(-1); } len = sizeof(struct sockaddr_in); memset(&server,0,len); server.sin_family = AF_INET; server.sin_port = htons(6040); server.sin_addr.s_addr = INADDR_ANY; bzero(&server.sin_zero, 8); if((bind(sock, (struct sockaddr *)&server, len)) == -1) { perror("bind"); exit(-1); } if((listen(sock, 5)) == -1) { perror("listen"); exit(-1); } while(1) { if((cli= accept(sock, (struct sockaddr *)&client, &len)) == -1) { perror("accept"); exit(-1); } sent = send(cli, mesg, strlen(mesg), 0); printf("Sent %d bytes to client: %s\n",sent,inet_ntoa(client.sin_addr)); sent = send(cli, enteryourname, strlen(enteryourname), 0); get = recv(cli, name, MAXLEN, 0); printf("Received name: %s",name); sent = send(cli, yournameis, strlen(yournameis), 0); sent = send(cli, ask, sizeof(ask), 0); get = recv(cli, resp, MAXLEN, 0); if(!strcmp(resp, "1")) { sent = send(cli, yes, sizeof(yes), 0); } else { sent = send(cli, other, sizeof(yes), 0); } } }