Advertisement
Guest User

Untitled

a guest
Apr 22nd, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.47 KB | None | 0 0
  1. int startAsServer(){
  2. int socket_desc , client_sock , c , read_size;
  3. struct sockaddr_in server , client;
  4. char * client_message = (char *) malloc(sizeof(char) * 2000);
  5. socket_desc = socket(AF_INET , SOCK_STREAM , 0);
  6. if (socket_desc == -1) {
  7. printf("Could not create socket");
  8. }
  9. puts("Socket created");
  10. server.sin_family = AF_INET;
  11. server.sin_addr.s_addr = INADDR_ANY;
  12. server.sin_port = htons( 8888 );
  13. if( bind(socket_desc,(struct sockaddr *)&server , sizeof(server)) < 0) {
  14. perror("bind failed. Error");
  15. return 1;
  16. }
  17. puts("bind done");
  18. listen(socket_desc , 3);
  19. puts("Waiting for incoming connections...");
  20. c = sizeof(struct sockaddr_in);
  21. while(1) {
  22. client_sock = accept(socket_desc, (struct sockaddr *)&client, (socklen_t*)&c);
  23. if (client_sock < 0) {
  24. perror("accept failed");
  25. return 1;
  26. }
  27. while( (read_size = recv(client_sock , client_message , 2000 , 0) ) > 0 ){
  28. if(!strcmp(client_message, "halt")){
  29. return 0;
  30. } else {
  31. client_message = processCommand(client_message);
  32. write(client_sock , client_message , strlen(client_message));
  33. bzero(client_message, 2000);
  34. }
  35. }
  36. if(read_size == 0){
  37. puts("Client disconnected");
  38. fflush(stdout);
  39. }
  40. else if(read_size == -1){
  41. perror("recv failed");
  42. }
  43. }
  44. return 0;
  45. }
  46. //starts sending on port 8888
  47. int startAsClient(){
  48. int sock;
  49. struct sockaddr_in server;
  50. char message[1000] , server_reply[2000];
  51. sock = socket(AF_INET , SOCK_STREAM , 0);
  52. if (sock == -1){
  53. printf("Could not create socket");
  54. }
  55. puts("Socket created");
  56. server.sin_addr.s_addr = inet_addr("127.0.0.1");
  57. server.sin_family = AF_INET;
  58. server.sin_port = htons( 8888 );
  59. if (connect(sock , (struct sockaddr *)&server , sizeof(server)) < 0){
  60. perror("connect failed. Error");
  61. return 1;
  62. }
  63. puts("Connected\n");
  64. while(1){
  65. printf("Enter message : ");
  66. bzero(message, 1000);
  67. scanf("%s" , message);
  68. if(strcmp(message, "quit") == 0){
  69. return 0;
  70. }
  71. if( send(sock , message , strlen(message) , 0) < 0){
  72. puts("Send failed");
  73. return 1;
  74. }
  75. if(!strcmp(message, "halt")){
  76. return 0;
  77. }
  78. bzero(server_reply, 2000);
  79. if( recv(sock , server_reply , 2000 , 0) < 0){
  80. puts("recv failed");
  81. break;
  82. }
  83. puts("Server reply :");
  84. puts(server_reply);
  85. }
  86. close(sock);
  87. return 0;
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement