Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <WinSock2.h>
- #pragma comment(lib, "ws2_32.lib")
- WSADATA m_wsaData;
- int main()
- {
- if (WSAStartup(MAKEWORD(2, 2), &m_wsaData))
- {
- std::cout << "WSA start failed" << std::endl;
- }
- else
- {
- SOCKET m_socket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
- if (m_socket == INVALID_SOCKET)
- {
- std::cout << "invalid socket" << std::endl;
- }
- else
- {
- sockaddr_in m_sockaddr = { 0 };
- m_sockaddr.sin_family = AF_INET;
- m_sockaddr.sin_port = htons(1337);
- m_sockaddr.sin_addr.s_addr = INADDR_ANY;
- if (bind(m_socket, (SOCKADDR*)& m_sockaddr, sizeof(m_sockaddr)) == SOCKET_ERROR)
- {
- std::cout << "socket bind failed" << std::endl;
- }
- else
- {
- char m_buffer[512];
- sockaddr_in m_sockaddr_from = { 0 };
- int m_socketaddr_from_leng = sizeof(m_sockaddr_from);
- while (42)
- {
- ZeroMemory(m_buffer,sizeof(m_buffer));
- int size;
- if ((size = recvfrom(m_socket, m_buffer, sizeof(m_buffer), NULL, (SOCKADDR*)&m_sockaddr_from, &m_socketaddr_from_leng)) == SOCKET_ERROR)
- {
- std::cout << "recv failed" << std::endl;
- }
- else
- {
- std::cout
- << (int)m_sockaddr_from.sin_addr.S_un.S_un_b.s_b1 << "."
- << (int)m_sockaddr_from.sin_addr.S_un.S_un_b.s_b2 << "."
- << (int)m_sockaddr_from.sin_addr.S_un.S_un_b.s_b3 << "."
- << (int)m_sockaddr_from.sin_addr.S_un.S_un_b.s_b4 << " -> " <<m_buffer << std::endl;
- if (sendto(m_socket, m_buffer, size, NULL, (SOCKADDR*)&m_sockaddr_from, m_socketaddr_from_leng) == SOCKET_ERROR)
- {
- std::cout << "send failed" << std::endl;
- }
- }
- }
- }
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement