示例#1
0
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;
}
示例#2
0
文件: rme_net.cpp 项目: TheSumm/rme
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;
}