Facebook
From asdf, 1 Month ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 147
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <sys/types.h>
  4. #include <sys/socket.h>
  5. #include <netinet/in.h>
  6. #include <unistd.h>
  7. #include <string.h>
  8.  
  9. #define SIZE 1000
  10.  
  11. int main() {
  12.     char serverMessage[SIZE] = "You have a missed call from server\n";
  13.  
  14.     int socketDescriptor = socket(AF_INET, SOCK_STREAM, 0);
  15.  
  16.     struct sockaddr_in serverAddress;
  17.     serverAddress.sin_family = AF_INET;
  18.     serverAddress.sin_port = htons(9002);
  19.     serverAddress.sin_addr.s_addr = INADDR_ANY;
  20.  
  21.     bind(socketDescriptor, (struct sockaddr*) &serverAddress;, sizeof(serverAddress));
  22.  
  23.     listen(socketDescriptor, 5);
  24.  
  25.     int client_socket = accept(socketDescriptor, NULL, NULL);
  26.  
  27.     pid_t pid = fork();
  28.  
  29.     if (pid < 0) {
  30.         fprintf(stderr, "Fork failed\n");
  31.         return 1;
  32.     }
  33.  
  34.     if (pid == 0) {
  35.         // Child process (server receive message from client)
  36.         char clientMessage[SIZE];
  37.         while (1) {
  38.             recv(client_socket, &clientMessage;, sizeof(clientMessage), 0); //receive message from client
  39.             printf("\nClient message: %s", clientMessage); //display message
  40.         }
  41.     } else {
  42.         // Parent process (send message to client)
  43.         while (1) {
  44.             printf("Server: ");
  45.             fgets(serverMessage, SIZE, stdin); //get message from keyboard
  46.             send(client_socket, serverMessage, strlen(serverMessage), 0); //send message to client
  47.         }
  48.     }
  49.  
  50.     close(socketDescriptor);
  51.     return 0;
  52. }
  53.  
  54.  
  55.  
  56.  
  57.  
  58. #include <stdio.h>
  59. #include <stdlib.h>
  60. #include <sys/types.h>
  61. #include <sys/socket.h>
  62. #include <netinet/in.h>
  63. #include <unistd.h>
  64. #include <string.h>
  65.  
  66. #define SIZE 1000
  67.  
  68. int main() {
  69.     int socketDescriptor = socket(AF_INET, SOCK_STREAM, 0);
  70.  
  71.     struct sockaddr_in serverAddress;
  72.     serverAddress.sin_family = AF_INET;
  73.     serverAddress.sin_port = htons(9002);
  74.     serverAddress.sin_addr.s_addr = INADDR_ANY;
  75.  
  76.     connect(socketDescriptor, (struct sockaddr *)&serverAddress;, sizeof(serverAddress));
  77.  
  78.     pid_t pid = fork();
  79.  
  80.     if (pid < 0) {
  81.         fprintf(stderr, "Fork failed\n");
  82.         return 1;
  83.     }
  84.  
  85.     if (pid == 0) {
  86.         // Child process (client send message to server)
  87.         char clientMessage[SIZE];
  88.         while (1) {
  89.             printf("Client: ");
  90.             fgets(clientMessage, SIZE, stdin); //get message from keyboard
  91.             send(socketDescriptor, clientMessage, strlen(clientMessage), 0); //send message to server
  92.         }
  93.     } else {
  94.         // Parent process (receive message from server)
  95.         char serverMessage[SIZE];
  96.         while (1) {
  97.             recv(socketDescriptor, &serverMessage;, sizeof(serverMessage), 0); //receive message from server
  98.             printf("\nServer message: %s", serverMessage); //display message
  99.         }
  100.     }
  101.  
  102.     close(socketDescriptor);
  103.     return 0;
  104. }