peterzig

[PWŚS] TCP Normalizacja

May 29th, 2017
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.99 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <winsock.h>
  3. #include <conio.h>
  4.  
  5. #pragma comment(lib,"ws2_32.lib")
  6.  
  7. void main()
  8. {
  9.     WSADATA wsadata;
  10.     if( WSAStartup(MAKEWORD(2,2), &wsadata) != 0)
  11.     {
  12.         printf("WSAStartup failed with error: %d\n", WSAGetLastError());
  13.         _getch();
  14.         return;
  15.     }
  16.  
  17.     SOCKET s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
  18.     if (s == INVALID_SOCKET)
  19.     {
  20.         WSACleanup();
  21.         printf("Creating socket failed with error: %d\n", WSAGetLastError());
  22.         _getch();
  23.         return;
  24.     }
  25.     sockaddr_in serwer;
  26.     serwer.sin_family = AF_INET;
  27.     serwer.sin_port = htons(7801);
  28.     serwer.sin_addr.s_addr = inet_addr("192.168.0.13");
  29.  
  30.     while(true)
  31.     {
  32.         if(connect(s, (sockaddr*) &serwer, sizeof(serwer)) < 0)
  33.         {
  34.             printf("Polaczenie z serwerem nieudane!\n");
  35.             _getch();
  36.             continue;
  37.         }
  38.         send(s, "NORM", sizeof("NORM"), 0);
  39.  
  40.         while (true)
  41.         {
  42.             signed char znak;
  43.             int ilosc, wartosc, Result;
  44.             Result = recv(s, (char*)&znak, sizeof(znak), 0);
  45.             if (Result == SOCKET_ERROR)
  46.             {
  47.                 break;
  48.             }
  49.             wartosc = znak;
  50.             ilosc = abs(wartosc);
  51.             float *tab = new float[ilosc];
  52.  
  53.             Result = recv(s, (char*)&(*tab), sizeof(float) * ilosc, 0);
  54.             if (Result == SOCKET_ERROR)
  55.             {
  56.                 break;
  57.             }
  58.  
  59.             int min, max, newMin, newMax = 1;
  60.             min = max = tab[0];
  61.  
  62.             printf("Otrzymane liczby:\n");
  63.            
  64.             for (int i = 0; i < ilosc; i++)
  65.             {
  66.                 printf("%f; ", tab[i]);
  67.                 if (tab[i] < min)
  68.                     min = tab[i];
  69.                 else if (tab[i] > max)
  70.                     max = tab[i];
  71.             }
  72.             if (wartosc < 0)
  73.             {
  74.                 newMin = -1;
  75.             }
  76.             else if (wartosc > 0)
  77.             {
  78.                 newMin = 0;
  79.             }
  80.             else
  81.             {
  82.                 continue;
  83.             }
  84.             printf("\nZnormalizowane liczby do przedzialu <%d, %d>:\n", newMin, newMax);
  85.             for (int i = 0; i < ilosc; i++)
  86.             {
  87.                 tab[i] = newMin + (((tab[i] - min) * (newMax - newMin)) / (max - min) );
  88.                 printf("%f; ", tab[i]);
  89.             }
  90.             delete[] tab;
  91.             getch();
  92.         }
  93.     }
  94.  
  95.     printf("Konczenie dzialania programu\n");
  96.     shutdown(s, 2);
  97.     closesocket(s);
  98.     WSACleanup();
  99.     getch();
  100. }
Add Comment
Please, Sign In to add comment