Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Winsock()_K_Udp.cpp : Defines the entry point for the console application.
- //
- #include <stdio.h>
- #include <winsock.h>
- #include <string.h>
- #include <conio.h>
- #include <bitset>
- struct Znak
- {
- char ciag;
- int zn;
- };
- int main()
- {
- WORD wersja = MAKEWORD(2, 2);
- WSAData wsData;
- if ((WSAStartup(wersja, &wsData)) != 0)
- {
- printf("Blad ladowania biblioteki: %d", WSAGetLastError());
- WSACleanup();
- _getch();
- return 0;
- }
- /////////////////////////
- SOCKET gniazdo;
- if ((gniazdo = socket(AF_INET, SOCK_DGRAM, 0)) == INVALID_SOCKET)
- {
- printf("Blad ladowania gniazda: %d", WSAGetLastError());
- shutdown(gniazdo, 2);
- closesocket(gniazdo);
- WSACleanup();
- _getch();
- return 0;
- }
- /////////////////////////
- SOCKADDR_IN klient;
- klient.sin_family = AF_INET;
- klient.sin_addr.s_addr = INADDR_ANY;
- klient.sin_port = htons(0);
- if ((bind(gniazdo, (SOCKADDR*)&klient, sizeof(klient))) == SOCKET_ERROR)
- {
- printf("Blad bindowania gniazda: %d", WSAGetLastError());
- shutdown(gniazdo, 2);
- closesocket(gniazdo);
- WSACleanup();
- _getch();
- return 0;
- }
- /////////////////////////
- SOCKADDR_IN serwer;
- serwer.sin_family = AF_INET;
- serwer.sin_addr.s_addr = inet_addr("127.0.0.1");
- serwer.sin_port = htons(1234);
- int rozm = sizeof(serwer);
- ////////////////////////
- char wysylane[3];
- char odebrane[1024];
- memset(odebrane, 0, 1024);
- printf("Podaj trzy litery: ");
- scanf("%s", &wysylane);
- if (sendto(gniazdo, wysylane, sizeof(wysylane), 0, (SOCKADDR*)&serwer, sizeof(serwer)) == SOCKET_ERROR)
- {
- printf("Blad wysylania");
- }
- if (SOCKET_ERROR == recvfrom(gniazdo, odebrane, sizeof(odebrane), 0, (SOCKADDR*)&serwer, &rozm))
- {
- printf("Blad pobierania");
- }
- printf("%c", ((Znak*)odebrane)->ciag);
- printf("%i", ((Znak*)odebrane)->zn);
- _getch();
- shutdown(gniazdo, 2);
- closesocket(gniazdo);
- WSACleanup();
- return 0;
- }
Add Comment
Please, Sign In to add comment