#include #include #include #include #define BUFFER_SIZE 256 #define MESSAGE_SIZE 141 /** gcc -m32 -o server server.c -fno-stack-protector**/ typedef struct sockaddr SOCKADDR; typedef struct sockaddr_in SOCKADDR_IN; void run(int); int main(int argc, char **argv){ SOCKADDR_IN server, client; int socket_res, size_sockaddrin, accept_res, recv_res; socket_res = socket(AF_INET, SOCK_STREAM, 0); if(socket_res < 0){ printf("Error: unable to create the socket\n"); } server.sin_family = AF_INET; server.sin_addr.s_addr = INADDR_ANY; server.sin_port = htons(42742); if(bind(socket_res, (SOCKADDR *)&server, sizeof server) < 0){ printf("Error: unable to bind\n"); } listen(socket_res, 5); printf(" ====================== Listening ... ======================\n"); size_sockaddrin = sizeof(SOCKADDR_IN); accept_res = accept(socket_res, (SOCKADDR *)&client, (socklen_t *)&size_sockaddrin); if(accept_res < 0){ printf("Error: unable to accept incoming connection\n"); } printf(" ====================== Connected ... ======================\n"); run(accept_res); return 0; } void run(int accept_res){ char tweet[MESSAGE_SIZE]; char buffer[BUFFER_SIZE]; int data = recv(accept_res, buffer, BUFFER_SIZE, 0); if(data > 0){ buffer[data-1] = '\0'; strcpy(tweet, buffer); printf("Your tweet: %s\n", tweet); } else if(data == -1){ printf("Error: unable to receive\n"); } close(accept_res); } void printOK(){ printf("OK\n"); }