Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // WinSock()_S_Udp.cpp : Defines the entry point for the console application.
- //
- #include <stdio.h>
- #include <string.h>
- #include <winsock.h>
- #include <conio.h>
- struct Dane{
- char name;
- int liczba;
- };
- int main()
- {
- WORD wersja= MAKEWORD(2, 2);
- WSADATA wsData;
- if (WSAStartup(wersja, &wsData) != 0)
- {
- printf("Blad inicjalizacji WinSock()!");
- _getch();
- return 0;
- }
- //////////////////////////
- SOCKET gniazdo;
- if ((gniazdo = socket(AF_INET, SOCK_DGRAM, 0)) == INVALID_SOCKET)
- {
- printf("Blad ladowania gniazda: %d",INVALID_SOCKET);
- shutdown(gniazdo, 2);
- closesocket(gniazdo);
- WSACleanup();
- _getch();
- return 0;
- }
- //////////////////////////
- SOCKADDR_IN serwer;
- serwer.sin_family = AF_INET;
- serwer.sin_addr.s_addr = INADDR_ANY;
- serwer.sin_port = htons(1234);
- if ((bind(gniazdo, (SOCKADDR*)&serwer, sizeof(serwer))) == SOCKET_ERROR)
- {
- printf("Blad ladowania gniazda: %d", WSAGetLastError());
- shutdown(gniazdo, 2);
- closesocket(gniazdo);
- WSACleanup();
- _getch();
- return 0;
- }
- Dane pakunek;
- pakunek.name = 'd';
- pakunek.liczba = 94;
- char buff[8];
- memset(buff, 0, sizeof(buff));
- char odebrane[3];
- SOCKADDR_IN klient;
- int odebrany = sizeof(klient);
- while(true)
- {
- if (recvfrom(gniazdo, odebrane, sizeof(odebrane), 0, (SOCKADDR*)&klient, &odebrany)==SOCKET_ERROR)
- {
- printf("Blad danych!");
- break;
- }
- memset(odebrane, 0, sizeof(odebrane));
- printf("Odebralem znaki %s\n", odebrane);
- if (sendto(gniazdo, (char*)&pakunek, sizeof(pakunek), 0, (SOCKADDR*)&klient, sizeof(klient)) == INVALID_SOCKET)
- {
- printf("Odbieranie sie nie powiodlo");
- }
- }
- //////////////////////////
- _getch();
- shutdown(gniazdo, 2);
- closesocket(gniazdo);
- WSACleanup();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement