Advertisement
Guest User

Untitled

a guest
Dec 4th, 2016
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.31 KB | None | 0 0
  1. Server::Server(std::ostream* out, std::istream* in, std::ostream* error, const uint16_t port, const char* filename) throw(ServerException) {
  2.  
  3.     this->out = out;
  4.     this->in = in;
  5.     this->error = error;
  6.     this->filename = std::string(filename);
  7.  
  8.     WSADATA wsaData;
  9.     auto wsaStartup = WSAStartup(MAKEWORD(2, 2), &wsaData);
  10.     if(wsaStartup != 0)
  11.         throw ServerException(COULD_NOT_STARTUP);
  12.  
  13.     generalSocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
  14.     if(generalSocket == INVALID_SOCKET)
  15.         throw ServerException(COULD_NOT_CREATE_SOCKET);
  16.  
  17.     *this->out << "Socket has been successfully created." << std::endl;
  18.  
  19.     struct sockaddr_in serverAddress;
  20.     ZeroMemory(&serverAddress, sizeof(serverAddress));
  21.     serverAddress.sin_family = AF_INET;
  22.     serverAddress.sin_addr.s_addr = INADDR_ANY;
  23.     serverAddress.sin_port = htons(port);
  24.  
  25.     generalBind = bind(generalSocket, (struct sockaddr *) &serverAddress, sizeof(serverAddress));
  26.     if(generalBind == SOCKET_ERROR)
  27.         throw ServerException(COULD_NOT_BIND);
  28.  
  29.     *this->out << "Socket has been successfully bind." << std::endl;
  30.  
  31.     unsigned int iMode = 1;
  32.     generalFlags = ioctlsocket(generalSocket, 0x8004667E, &iMode);
  33.     if(generalFlags == SOCKET_ERROR)
  34.         throw ServerException(COULD_NOT_SET_NON_BLOCKING);
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement