bool wxGISLocalClientConnection::Connect(void) { if(m_bIsConnected) return true; wxString sHost(HOST); unsigned short nPort(PORT); unsigned short nTimeOut(TIMEOUT); wxGISAppConfig oConfig = GetConfig(); if(oConfig.IsOk()) { sHost = oConfig.Read(enumGISHKCU, wxString(wxT("wxGISCommon/tasks/host")), sHost); nPort = oConfig.ReadInt(enumGISHKCU, wxString(wxT("wxGISCommon/tasks/port")), nPort); nTimeOut = oConfig.ReadInt(enumGISHKCU, wxString(wxT("wxGISCommon/tasks/timeout")), nTimeOut); } //start conn IPaddress addr; addr.Hostname(sHost); addr.Service(nPort); // Create the socket wxSocketClient* pSock = new wxSocketClient(wxSOCKET_WAITALL | wxSOCKET_BLOCK | wxSOCKET_REUSEADDR); m_pSock = pSock; m_pSock->SetEventHandler(*this, SOCKET_ID); m_pSock->Notify(true); m_pSock->SetNotify(wxSOCKET_CONNECTION_FLAG|wxSOCKET_LOST_FLAG); m_pSock->SetTimeout(nTimeOut); pSock->Connect(addr, false); m_bIsConnecting = true; return CreateAndRunThreads(); }
void wxGISLocalServerConnection::SetSocket(wxSocketBase* sock) { m_bIsConnected = true; m_pSock = sock; m_pSock->SetEventHandler(*this, SOCKET_ID); m_pSock->SetNotify( wxSOCKET_LOST_FLAG );// | wxSOCKET_INPUT m_pSock->Notify(true); m_pSock->SetFlags(wxSOCKET_WAITALL | wxSOCKET_BLOCK); if (!m_pSock->IsOk()) { wxLogError(_("Cannot bind listening socket")); } else { CreateAndRunThreads(); } }