Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma comment(lib, "Ws2_32.lib")
- #include <winsock2.h>
- #include <iostream>
- #include <conio.h>
- #include <string.h>
- #include <stdio.h>
- using namespace std;
- class InitWinsock
- {
- public:
- WSADATA wsaData;
- InitWinsock()
- {
- if (WSAStartup(MAKEWORD(2, 2), &wsaData) == 0)
- {
- cout << "Inicjalizacja biblioteki WinSock zakonczona sukcesem!" << endl;
- }
- else
- {
- cout << "Blad inicjalizacji biblioteki WinSock!" << endl;
- }
- }
- ~InitWinsock()
- {
- WSACleanup();
- cout << "Zwolniono biblioteke WinSock!" << endl;
- }
- };
- int main()
- {
- InitWinsock W;
- SOCKADDR_IN sockaddrClient;
- SOCKET Client = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); //moze byc 0
- if (Client == INVALID_SOCKET)
- {
- cout << "Nie mozna stworzyc gniazda!" << endl;
- getch();
- return 0;
- }
- char host[128] = "192.168.0.46";
- sockaddrClient.sin_family = AF_INET;
- sockaddrClient.sin_port = htons(50000);
- sockaddrClient.sin_addr.s_addr = inet_addr(host);
- while (true)
- {
- char tekst[128];
- cout << "Podaj tekst: ";
- gets_s(tekst);
- if (strcmp(tekst, "EXIT") == 0)
- break;
- int wynik = sendto(Client, tekst, strlen(tekst), 0, (SOCKADDR *)&sockaddrClient, sizeof(sockaddrClient));
- if (wynik == INVALID_SOCKET)
- {
- cout << "Blad wyslania: " << WSAGetLastError();
- shutdown(Client, 2);
- closesocket(Client);
- getch();
- return 0;
- }
- int size = sizeof(sockaddrClient);
- wynik = recvfrom(Client, tekst, sizeof(tekst), 0, (SOCKADDR *)&sockaddrClient, &size);
- if (wynik == INVALID_SOCKET)
- {
- cout << "Blad odbierania danych: " << WSAGetLastError();
- shutdown(Client, 2);
- closesocket(Client);
- getch();
- return 0;
- }
- tekst[wynik] = 0;
- cout << tekst << endl;
- }
- cout << "Koniec programu." << endl;
- shutdown(Client, 2);
- closesocket(Client);
- getch();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement