Esempio n. 1
0
Sender::Sender(QString host,int port)
{
    connection = 0;
    //connect
    sock=new QTcpSocket(this);
    connect(sock,SIGNAL(connected()),this,SLOT(connSock()));
    connect(sock,SIGNAL(disconnected()),this,SLOT(dconSock()));
    connect(sock,SIGNAL(error(QAbstractSocket::SocketError)),this,SLOT(dconSock()));
    connect(sock,SIGNAL(readyRead()),this,SLOT(readSock()));
    sock->connectToHost(host,port);
    qDebug("connected???");
}
Esempio n. 2
0
//when the read event arrive, accept a connecton,
//create a ConcreteAgent and initialize it
int TCPListenAgent::recvData(void)
{
    SocketAddress oppositeAddr;
    int connfd;
    connfd = m_TCPListenSocket.acceptConnection(oppositeAddr);
    if(connfd < 0)
    {
        if(!((errno == EINTR) || (errno == EWOULDBLOCK)) )
        {
            LOG_ERROR("TCPListenAgent listen");
            return FAILED;
        }
    }
    TCPSocket connSock(connfd);
    if(connSock.setNonblock()<0
            || connSock.disableLinger()<0
            || connSock.disableNagle()<0)
    {
        LOG_ERROR("TCPListenAgent::recvData");
        connSock.closeSocket();
        return FAILED;
    }
    //resigerREvent and initialize the Agent's member
    TCPAgent* agent = (AgentManager::instance()).createAgent(connSock,oppositeAddr,m_epoll);
    
    if(NULL == agent)
    {
        LOG_ERROR("Agent manager create agent error !");
        connSock.closeSocket();
        return SUCCESSFUL;
    }

    if(agent->init(&(this->op)) != SUCCESSFUL)
    {
        LOG_ERROR("init agent operations error !");
        (AgentManager::instance()).recyclerAgent(agent);
        return SUCCESSFUL;
    }

	agent->connectAfter(true);
    return SUCCESSFUL;
}