Advertisement
Guest User

server.c

a guest
Nov 14th, 2019
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.97 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<string.h> //strlen
  3. #include<sys/socket.h>
  4. #include<arpa/inet.h> //inet_addr
  5. #include<unistd.h> //write
  6.  
  7.  
  8. int main(int argc , char *argv[])
  9. {
  10. int socket_desc, socket_desc1, client_sock , c , read_size;
  11. struct sockaddr_in server_recv, server_send , client;
  12. char client_message[512];
  13.  
  14. //Create socket
  15. socket_desc = socket(AF_INET , SOCK_STREAM , 0);
  16. if (socket_desc == -1)
  17. {
  18. printf("Could not create socket");
  19. }
  20. puts("Socket created");
  21.  
  22. //Prepare the sockaddr_in structure
  23. server_recv.sin_family = AF_INET;
  24. inet_pton(AF_INET, "192.168.0.100", &(server_recv.sin_addr));
  25. server_recv.sin_port = htons(51000);
  26.  
  27. server_send.sin_family = AF_INET;
  28. inet_pton(AF_INET, "192.168.0.100", &(server_send.sin_addr));
  29. server_send.sin_port = htons(51500);
  30.  
  31. //Bind
  32. if( bind(socket_desc,(struct sockaddr *)&server_recv , sizeof(server_recv)) < 0)
  33. { //print the error message
  34. perror("bind failed. Error");
  35. return 1;
  36. }
  37. puts("bind done");
  38.  
  39. if( bind(socket_desc1,(struct sockaddr *)&server_send , sizeof(server_send)) < 0)
  40. { //print the error message
  41. perror("bind failed. Error");
  42. return 1;
  43. }
  44. puts("bind done");
  45.  
  46. //Listen
  47. listen(socket_desc , 3);
  48. listen(socket_desc1 , 3);
  49.  
  50. //Accept and incoming connection
  51. puts("Waiting for incoming connections...");
  52. c = sizeof(struct sockaddr_in);
  53.  
  54. //accept connection from an incoming client
  55. client_sock = accept(socket_desc, (struct sockaddr *)&client, (socklen_t*)&c);
  56. if (client_sock < 0)
  57. { perror("accept failed");
  58. return 1;
  59. }
  60. puts("Connection accepted");
  61.  
  62. //Receive a message from client
  63. while( (read_size = recv(client_sock , client_message , 512 , 0)) > 0 )
  64. {
  65. //Send the message back to client
  66. write(client_sock , client_message , strlen(client_message));
  67. }
  68.  
  69. if(read_size == 0)
  70. {
  71. puts("Client disconnected");
  72. fflush(stdout);
  73. }
  74. else if(read_size == -1)
  75. {
  76. perror("recv failed");
  77. }
  78.  
  79. return 0;
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement