bool LiveServer::Bind() { ipaddr.AnyAddress(); serv = newd wxSocketServer(ipaddr, wxSOCKET_NOWAIT); bool ok = serv->IsOk(); if(ok) { serv->SetEventHandler(*this, wxID_ANY); serv->SetNotify(wxSOCKET_INPUT_FLAG | wxSOCKET_OUTPUT_FLAG | wxSOCKET_CONNECTION_FLAG | wxSOCKET_LOST_FLAG); serv->Notify(true); wxEvtHandler::Connect(wxID_ANY, wxEVT_SOCKET, wxSocketEventHandler(LiveServer::HandleEvent)); } return ok; }
bool RMENet::Connect() { wxIPV4address ipaddr; ipaddr.Hostname("127.0.0.1");//90.230.54.138")); ipaddr.Service(31312); socket = newd wxSocketClient(wxSOCKET_NOWAIT); connection = newd NetworkConnection(this, socket); socket->SetClientData(connection); socket->SetEventHandler(*this, wxID_ANY); socket->SetNotify(wxSOCKET_INPUT_FLAG | wxSOCKET_OUTPUT_FLAG | wxSOCKET_LOST_FLAG); socket->Notify(true); wxEvtHandler::Connect(wxID_ANY, wxEVT_SOCKET, wxSocketEventHandler(RMENet::HandleEvent)); socket->Connect(ipaddr, false); if(!socket || !socket->WaitOnConnect(5, 0) || !socket || !socket->IsConnected()) { if(socket) socket->Destroy(); socket = nullptr; delete connection; connection = nullptr; return false; } NetworkMessage* nmsg = AllocMessage(); nmsg->AddByte(0x00); // Hello! nmsg->AddU32(__LIVE_NET_VERSION__); nmsg->AddString(g_settings.getString(Config::LIVE_USERNAME)); nmsg->AddString(g_settings.getString(Config::LIVE_PASSWORD)); connection->Send(nmsg); return true; }