Guest User

Untitled

a guest
Nov 25th, 2017
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.26 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <arpa/inet.h>
  3. #include <unistd.h>
  4.  
  5. int main(int argc, char *argv[]) {
  6.  
  7.     int buff_size;
  8.     int socket_desc, new_socket, c, data_size, i;
  9.     struct sockaddr_in server, client;
  10.     int read_size;
  11.     char client_message[20], received_data[20], operation_sign = 0, received_data_size = 0;
  12.     char *tmp_buff;
  13.     char result = 0;
  14.     socket_desc = socket(AF_INET, SOCK_STREAM, 0);
  15.     if (socket_desc == -1) {
  16.         perror("Could not create socket");
  17.     }
  18.  
  19.     server.sin_family = AF_INET;
  20.     server.sin_addr.s_addr = INADDR_ANY;
  21.     server.sin_port = htons(8888);
  22.  
  23.     if (bind(socket_desc, (struct sockaddr *) &server, sizeof(server)) < 0) {
  24.         perror("Problem dolaczenia gniazda");
  25.     }
  26.     puts("Dolaczono gniazdo strumieniowe");
  27.  
  28.     listen(socket_desc, 3);
  29.  
  30.     puts("SERWER TCP: Czekam na polaczenie...");
  31.     c = sizeof(struct sockaddr_in);
  32.     while (1) {
  33.  
  34.         new_socket = accept(socket_desc, (struct sockaddr *) &client, (socklen_t *) &c);
  35.         if (new_socket < 0) {
  36.             perror("Problem z akceptacja poloczenia");
  37.         }
  38.         puts("Polaczenie zaakceptowane");
  39.  
  40.         while ((read_size = (int) recv(new_socket, client_message, 3000, 0)) > 0) {
  41.             puts("SERWER: Dane odebrano");
  42.             operation_sign = client_message[0];
  43.             for (i = 1; i < 20; i++) {
  44.                 if (client_message[i] == 0) {
  45.                     //dane + symbol obliczenia
  46.                     received_data_size = (char) (i);
  47.                     break;
  48.                 }
  49.             }
  50.             // char received_data[buff_size];
  51.             printf("received_data_size => %d\n", received_data_size);
  52.             for (i = 0; i < received_data_size; i++) {
  53.                 received_data[i] = client_message[i + 1];
  54.                 printf("received_data[%d] %d\n", i, client_message[i]);
  55.             }
  56.             for (i = 0; i < received_data_size; i++) {
  57.                 client_message[i] = 0;
  58.             }
  59.             received_data_size = 0;
  60.  
  61.             for (i = 0; i < received_data_size; i++) {
  62.                 result += received_data[i];
  63.             }
  64.             tmp_buff[0] = result;
  65.  
  66.             puts("tmp_buff[0] = result;");
  67.  
  68.  
  69.     close(new_socket);
  70.     return 0;
  71. }
Advertisement
Add Comment
Please, Sign In to add comment