Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _WINSOCK_DEPRECATED_NO_WARNINGS
- #pragma comment ( lib, "ws2_32.lib" )
- #include <stdio.h>
- #include <cstdio>
- #include <string.h>
- #include <winsock2.h>
- #include <windows.h>
- #include <iostream>
- #define PORT 666
- #define SERVERADDR "127.0.0.1"
- using namespace std;
- int main()
- {
- char buff[1024];
- printf("UDP Client Started. Made by Dmirtry Khmelev\n");
- // Инициализация WinSock (Khmelev Edition)
- WORD wVersionRequested = MAKEWORD(2, 2);
- WSADATA wsaData;
- int err = WSAStartup(wVersionRequested, &wsaData);
- if (err != 0)
- {
- printf("WSAStartup error: %d\n", WSAGetLastError());
- }
- // Открытие и закрытие сокета
- SOCKET my_sock = socket(AF_INET, SOCK_DGRAM, 0);
- if (my_sock == INVALID_SOCKET)
- {
- printf("socket() error: %d\n", WSAGetLastError());
- WSACleanup();
- }
- // Обмен сообщениями с сервером
- HOSTENT *hostent;
- sockaddr_in dest_addr;
- dest_addr.sin_family = AF_INET;
- dest_addr.sin_port = htons(5150);
- while (1)
- {
- // чтение сообщения с клавиатуры
- printf("C=>S:"); fgets(&buff[0], sizeof(buff) - 1, stdin);
- if (!strcmp(&buff[0], "quit\n")) break;
- // Передача сообщений на сервер
- sendto(my_sock, &buff[0], strlen(&buff[0]), 0, (sockaddr *)&dest_addr, sizeof(dest_addr));
- // Прием сообщения с сервера
- sockaddr_in server_addr;
- int server_addr_size = sizeof(server_addr);
- int n = recvfrom(my_sock, &buff[0], sizeof(buff) - 1, 0, (sockaddr *)&server_addr, &server_addr_size);
- if (n == SOCKET_ERROR)
- {
- printf("recvfrom() error:"\
- "%d\n", WSAGetLastError());
- closesocket(my_sock);
- WSACleanup();
- return -1;
- }
- buff[n] = 0;
- // Вывод принятого с сервера сообщения на экран
- printf("S=>C:%s", &buff[0]);
- }
- // шаг последний - выход
- closesocket(my_sock);
- WSACleanup();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement