Guest User

Untitled

a guest
Apr 17th, 2016
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.95 KB | None | 0 0
  1. #include <sys/types.h>
  2. #include <sys/socket.h>
  3. #include <netinet/in.h>
  4. #include <unistd.h>
  5. #include <stdlib.h>
  6. #include <stdio.h>
  7. #include <string.h>
  8.  
  9. void broadcast(char* msg, int* clients, int numClients);
  10.  
  11. int main(int argc, char** argv)
  12. {
  13. uint16_t port = 3000;
  14. struct sockaddr_in* server = malloc(sizeof(struct sockaddr_in));
  15. int sockfd = socket(AF_INET, SOCK_STREAM, 0);
  16. if(sockfd == -1)
  17. {
  18. puts("Bad Socket!!!!");
  19. }
  20.  
  21. server->sin_family = AF_INET;
  22. server->sin_addr.s_addr = inet_addr("127.0.0.1");
  23. server->sin_port = htons( port );
  24. memset(server->sin_zero, '\0', sizeof server->sin_zero);
  25.  
  26. int yes = 1;
  27. if (setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(int)) == -1) {
  28. perror("setsockopt");
  29. exit(1);
  30. }
  31. socklen_t serverSize = sizeof(server);
  32.  
  33. int bindfd = bind(sockfd, (struct sockaddr *)server, sizeof(struct sockaddr));
  34. if(bindfd < 0)
  35. {
  36. puts("Problem with binding...\n");
  37. }
  38. int listenfd;
  39. int clientfd;
  40. int MAX_CLIENTS = 1000;
  41. int* clients = malloc(MAX_CLIENTS * sizeof(int));
  42. int numberOfConnectedClients = 0;
  43.  
  44. char* message = "hello";
  45. while(1)
  46. {
  47. listenfd = listen(sockfd, 100);
  48.  
  49. printf("Listening....\n");
  50. clientfd = accept(sockfd , (struct sockaddr *)server , &serverSize);
  51. printf("Client Connected.... %d\n", clientfd);
  52.  
  53. //add this client to our array of clients
  54. clients[numberOfConnectedClients++] = clientfd;
  55.  
  56. send(clientfd, message , strlen(message) , 0);
  57.  
  58. char* client_reply = malloc(2000 * sizeof(char));
  59. while(1)
  60. {
  61. int error = recv(clientfd, client_reply, sizeof(client_reply), 0);
  62. if(error < 0)
  63. {
  64. puts("recv failed");
  65. }
  66. else
  67. {
  68. puts("Reply received\n");
  69. puts(client_reply);
  70. }
  71. }
  72. }
  73. }
Advertisement
Add Comment
Please, Sign In to add comment