Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //// Два консольных приложения
- //// Клиент, отправляющий сообщение серверу
- #include <WS2tcpip.h>
- #include <WinSock2.h>
- #include <QDebug>
- #pragma comment(lib, "Ws2_32.lib")
- const char* ip_address = "227.0.0.1";
- unsigned int port = 100;
- int main()
- {
- WSAData data;
- int ret = WSAStartup(MAKEWORD(2, 2), &data);
- if (ret != 0)
- qDebug() << "Error WSAStartup" << WSAGetLastError();
- SOCKET sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
- if (sock == INVALID_SOCKET)
- qDebug() << "Error opening socket" << WSAGetLastError();
- sockaddr_in add;
- add.sin_family = AF_INET;
- add.sin_addr.s_addr = inet_addr(ip_address);
- add.sin_port = htons(port);
- const char* str = "hello world";
- ret = sendto(sock, str, sizeof(str), 0,
- reinterpret_cast<SOCKADDR *>(&add), sizeof(add));
- if (ret < 0)
- qDebug() << "sendto failed" << WSAGetLastError();
- }
- //// Сервер, получает сообщение. У меня работает только qmake версия. Клиент не важно как собирать
- #include <WS2tcpip.h>
- #include <WinSock2.h>
- #include <QDebug>
- #pragma comment(lib, "Ws2_32.lib")
- const char* ip_address = "227.0.0.1";
- unsigned int port = 100;
- int main()
- {
- WSAData data;
- int ret = WSAStartup(MAKEWORD(2, 2), &data);
- if (ret != 0)
- qDebug() << "Error opening socket" << WSAGetLastError();
- SOCKET sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
- if (sock == INVALID_SOCKET)
- qDebug() << "Error opening socket" << WSAGetLastError();
- sockaddr_in add;
- add.sin_family = AF_INET;
- add.sin_addr.s_addr = htonl(INADDR_ANY);
- add.sin_port = htons(port);
- ret = bind(sock, reinterpret_cast<SOCKADDR*>(&add), sizeof(add));
- if (ret < 0)
- qDebug() << "Bind failed" << ret << WSAGetLastError();
- ip_mreq mreq;
- mreq.imr_multiaddr.s_addr = inet_addr(ip_address);
- setsockopt(sock, IPPROTO_IP, IP_ADD_MEMBERSHIP, (char*)&mreq, sizeof(mreq));
- char buffer[100];
- qDebug() << "recieved:" << recv(sock, buffer, sizeof(buffer), 0);
- if (ret < 0)
- qDebug() << "recvfrom failed" << WSAGetLastError();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement