bool GUIApplication::onJoinServerClicked(const CEGUI::EventArgs&) { String playerName = m_guiContext->getRootWindow()->getChild("JoinServer/playerName")->getText(); String serverIp = m_guiContext->getRootWindow()->getChild("JoinServer/serverIp")->getText(); m_userName = playerName; m_userListensUdpPort = 11223; m_userCreated = true; RemotePeersManager::getManager()->setMyName(m_userName.c_str()); RemotePeersManager::getManager()->setMyUdpPort(m_userListensUdpPort); // TODO: start listening at given UDP port. std::string errStr; if (!m_networkThread.startUdpListener(m_userListensUdpPort, errStr)) { return true; } NetConnection* newConnection = new NetConnection(*m_networkService); RemoteMessagePeer* myPeer = new RemoteMessagePeer(newConnection, false, *m_networkService); newConnection->connectTo(serverIp.c_str(), 1778); if (!m_networkThread.isRunning()) m_networkThread.start(); return true; }
void GUIApplication::consoleConnect(const std::vector<String>& params, String& output) { if (!m_userCreated) { output = "\nThis command is only available after log-in"; return; } if (params.size() < 3) { output = "\nExpected more parameters: connect <address> <tcp_port>"; return; } unsigned int tcpPort = 0; try { tcpPort = boost::lexical_cast<unsigned int>(params[2]); } catch (boost::bad_lexical_cast) { output = "\nBad parameter types. Expected: connect <address> <tcp_port>"; return; } NetConnection* newConnection = new NetConnection(*m_networkService); RemoteMessagePeer* myPeer = new RemoteMessagePeer(newConnection, false, *m_networkService); newConnection->connectTo(params[1].c_str(), tcpPort); if (!m_networkThread.isRunning()) m_networkThread.start(); output = "\ncommand accepted."; }