Advertisement
Guest User

UDP Server

a guest
Oct 10th, 2015
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.25 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3.  
  4. #include <WinSock2.h>
  5. #pragma comment(lib, "ws2_32.lib")
  6.  
  7. WSADATA m_wsaData;
  8.  
  9. int main()
  10. {
  11.     if (WSAStartup(MAKEWORD(2, 2), &m_wsaData))
  12.     {
  13.         std::cout << "WSA start failed" << std::endl;
  14.     }
  15.     else
  16.     {
  17.         SOCKET m_socket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
  18.         if (m_socket == INVALID_SOCKET)
  19.         {
  20.             std::cout << "invalid socket" << std::endl;
  21.         }
  22.         else
  23.         {
  24.             sockaddr_in m_sockaddr = { 0 };
  25.             m_sockaddr.sin_family = AF_INET;
  26.             m_sockaddr.sin_port = htons(1337);
  27.             m_sockaddr.sin_addr.s_addr = INADDR_ANY;
  28.  
  29.             if (bind(m_socket, (SOCKADDR*)& m_sockaddr, sizeof(m_sockaddr)) == SOCKET_ERROR)
  30.             {
  31.                 std::cout << "socket bind failed" << std::endl;
  32.             }
  33.             else
  34.             {
  35.                 char m_buffer[512];
  36.  
  37.  
  38.                 sockaddr_in m_sockaddr_from = { 0 };
  39.                 int m_socketaddr_from_leng = sizeof(m_sockaddr_from);
  40.  
  41.                 while (42)
  42.                 {
  43.                     ZeroMemory(m_buffer,sizeof(m_buffer));
  44.                     int size;
  45.  
  46.                     if ((size = recvfrom(m_socket, m_buffer, sizeof(m_buffer), NULL, (SOCKADDR*)&m_sockaddr_from, &m_socketaddr_from_leng)) == SOCKET_ERROR)
  47.                     {
  48.                         std::cout << "recv failed" << std::endl;
  49.                     }
  50.                     else
  51.                     {
  52.                         std::cout
  53.                             << (int)m_sockaddr_from.sin_addr.S_un.S_un_b.s_b1 << "."
  54.                             << (int)m_sockaddr_from.sin_addr.S_un.S_un_b.s_b2 << "."
  55.                             << (int)m_sockaddr_from.sin_addr.S_un.S_un_b.s_b3 << "."
  56.                             << (int)m_sockaddr_from.sin_addr.S_un.S_un_b.s_b4 << " -> " <<m_buffer << std::endl;
  57.  
  58.                         if (sendto(m_socket, m_buffer, size, NULL, (SOCKADDR*)&m_sockaddr_from, m_socketaddr_from_leng) == SOCKET_ERROR)
  59.                         {
  60.                             std::cout << "send failed" << std::endl;
  61.                         }
  62.                     }
  63.                 }
  64.             }
  65.         }
  66.     }
  67.  
  68.     return 0;
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement