Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Server::Server(std::ostream* out, std::istream* in, std::ostream* error, const uint16_t port, const char* filename) throw(ServerException) {
- this->out = out;
- this->in = in;
- this->error = error;
- this->filename = std::string(filename);
- WSADATA wsaData;
- auto wsaStartup = WSAStartup(MAKEWORD(2, 2), &wsaData);
- if(wsaStartup != 0)
- throw ServerException(COULD_NOT_STARTUP);
- generalSocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
- if(generalSocket == INVALID_SOCKET)
- throw ServerException(COULD_NOT_CREATE_SOCKET);
- *this->out << "Socket has been successfully created." << std::endl;
- struct sockaddr_in serverAddress;
- ZeroMemory(&serverAddress, sizeof(serverAddress));
- serverAddress.sin_family = AF_INET;
- serverAddress.sin_addr.s_addr = INADDR_ANY;
- serverAddress.sin_port = htons(port);
- generalBind = bind(generalSocket, (struct sockaddr *) &serverAddress, sizeof(serverAddress));
- if(generalBind == SOCKET_ERROR)
- throw ServerException(COULD_NOT_BIND);
- *this->out << "Socket has been successfully bind." << std::endl;
- unsigned int iMode = 1;
- generalFlags = ioctlsocket(generalSocket, 0x8004667E, &iMode);
- if(generalFlags == SOCKET_ERROR)
- throw ServerException(COULD_NOT_SET_NON_BLOCKING);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement