Advertisement
Glocke

server.cpp

Jan 4th, 2013
214
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.76 KB | None | 0 0
  1. #if 0
  2. #!/bin/sh
  3.  
  4. g++ -Wall `sdl-config --cflags` server.cpp -o server `sdl-config --libs` -lSDL_net
  5.  
  6. exit
  7. #endif
  8.  
  9. #include <iostream>
  10.  
  11. #include "SDL_net.h"
  12.  
  13. int main(int argc, char **argv) {
  14.     // Init SDL Net
  15.     if (SDLNet_Init() < 0) {
  16.         std::cout << "SDLNet_Init: " << SDLNet_GetError() << "\n";
  17.         return 1;
  18.     }
  19.     // Start Server
  20.     IPaddress myip;
  21.     if (SDLNet_ResolveHost(&myip, NULL, 14000) < 0) {
  22.         std::cout << "SDLNet_ResolveHost: " << SDLNet_GetError() << "\n";
  23.         return 1;
  24.     }
  25.     TCPsocket socket = SDLNet_TCP_Open(&myip);
  26.     if (!socket) {
  27.         std::cout << "SDLNet_TCP_Open: " << SDLNet_GetError() << "\n";
  28.         return 1;
  29.     }
  30.     // Wait to accept Client
  31.     TCPsocket client = NULL;
  32.     while (client == NULL) {
  33.         client = SDLNet_TCP_Accept(socket);
  34.     }
  35.     IPaddress* hisip = SDLNet_TCP_GetPeerAddress(client);
  36.     // Open UDP Socket
  37.     UDPsocket udp = SDLNet_UDP_Open(0);
  38.     if (!udp) {
  39.         std::cout << "SDLNet_UDP_Open: " << SDLNet_GetError() << "\n";
  40.         return 1;
  41.     }
  42.     // Allocate memory for the packet
  43.     UDPpacket* p = SDLNet_AllocPacket(512);
  44.     if (!p) {
  45.         std::cout << "SDLNet_AllocPacket: " << SDLNet_GetError() << "\n";
  46.         return 1;
  47.     }
  48.    
  49.     bool running = true;
  50.     int input;
  51.     int ret;
  52.     while (running) {
  53.         std::cout << "Send\n> ";
  54.         std::cin >> input;
  55.         p->data = (Uint8*)input;
  56.         p->address.host = hisip->host;
  57.         p->address.port = hisip->port;
  58.         p->len = sizeof(int);
  59.         ret = SDLNet_UDP_Send(udp, -1, p);
  60.         std::cout << "Success: " << ret << "\n";
  61.         if (input == 0) {
  62.             running = false;
  63.         }
  64.     }
  65.  
  66.     SDLNet_FreePacket(p);
  67.     SDLNet_Quit();
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement