Ejemplo n.º 1
0
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();
}
Ejemplo n.º 2
0
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();
    }
}