Cieslin

WinSock_UDP_K

Mar 12th, 2018
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.90 KB | None | 0 0
  1. // Winsock()_K_Udp.cpp : Defines the entry point for the console application.
  2. //
  3.  
  4. #include <stdio.h>
  5. #include <winsock.h>
  6. #include <string.h>
  7. #include <conio.h>
  8. #include <bitset>
  9. struct Znak
  10. {
  11.     char ciag;
  12.     int zn;
  13. };
  14.  
  15.  
  16. int main()
  17. {
  18.     WORD wersja = MAKEWORD(2, 2);
  19.     WSAData wsData;
  20.     if ((WSAStartup(wersja, &wsData)) != 0)
  21.     {
  22.         printf("Blad ladowania biblioteki: %d", WSAGetLastError());
  23.         WSACleanup();
  24.         _getch();
  25.         return 0;
  26.     }
  27.     /////////////////////////
  28.     SOCKET gniazdo;
  29.     if ((gniazdo = socket(AF_INET, SOCK_DGRAM, 0)) == INVALID_SOCKET)
  30.     {
  31.         printf("Blad ladowania gniazda: %d", WSAGetLastError());
  32.         shutdown(gniazdo, 2);
  33.         closesocket(gniazdo);
  34.         WSACleanup();
  35.         _getch();
  36.         return 0;
  37.     }
  38.     /////////////////////////
  39.     SOCKADDR_IN klient;
  40.     klient.sin_family = AF_INET;
  41.     klient.sin_addr.s_addr = INADDR_ANY;
  42.     klient.sin_port = htons(0);
  43.     if ((bind(gniazdo, (SOCKADDR*)&klient, sizeof(klient))) == SOCKET_ERROR)
  44.     {
  45.         printf("Blad bindowania gniazda: %d", WSAGetLastError());
  46.         shutdown(gniazdo, 2);
  47.         closesocket(gniazdo);
  48.         WSACleanup();
  49.         _getch();
  50.         return 0;
  51.     }
  52.     /////////////////////////
  53.     SOCKADDR_IN serwer;
  54.     serwer.sin_family = AF_INET;
  55.     serwer.sin_addr.s_addr = inet_addr("127.0.0.1");
  56.     serwer.sin_port = htons(1234);
  57.     int rozm = sizeof(serwer);
  58.     ////////////////////////
  59.         char wysylane[3];
  60.         char odebrane[1024];
  61.         memset(odebrane, 0, 1024);
  62.         printf("Podaj trzy litery: ");
  63.         scanf("%s", &wysylane);
  64.         if (sendto(gniazdo, wysylane, sizeof(wysylane), 0, (SOCKADDR*)&serwer, sizeof(serwer)) == SOCKET_ERROR)
  65.         {
  66.             printf("Blad wysylania");
  67.         }
  68.         if (SOCKET_ERROR == recvfrom(gniazdo, odebrane, sizeof(odebrane), 0, (SOCKADDR*)&serwer, &rozm))
  69.         {
  70.             printf("Blad pobierania");
  71.         }
  72.         printf("%c", ((Znak*)odebrane)->ciag);
  73.         printf("%i", ((Znak*)odebrane)->zn);
  74.     _getch();
  75.     shutdown(gniazdo, 2);
  76.     closesocket(gniazdo);
  77.     WSACleanup();
  78.     return 0;
  79.  
  80.  
  81. }
Add Comment
Please, Sign In to add comment