예제 #1
0
int clsConnWorker::AddAllListen()
{
	int iRet;

	uint32_t iLocalAcceptorID = m_poConf->GetLocalAcceptorID();
	vector<Endpoint_t> vecAcceptorEndpoint = m_poConf->GetAcceptorEndpoints();
	AssertLess(iLocalAcceptorID, vecAcceptorEndpoint.size());

	Endpoint_t tInternal = vecAcceptorEndpoint[iLocalAcceptorID];
	Endpoint_t tExteranl = m_poConf->GetExtpoint();

	iRet = AddListen(true, tInternal);
	if (iRet != 0)
	{
		CertainLogError("AddListen ret %d", iRet);
		return -1;
	}

	iRet = AddListen(false, tExteranl);
	if (iRet != 0)
	{
		CertainLogError("AddListen ret %d", iRet);
		return -2;
	}

	return 0;
}
예제 #2
0
    /**
     *\fn         int send(P2PMsg *msg)
     *\brief      发送命令。
     *\param[in]  msg           命令包。
     *\return     是否成功,0成功,其它失败。
     */
    int P2PIocpLayout::send(P2PMsg *msg)
    {
        if (NULL == msg) return P2P_ERR_IOCP_SEND_INPUT;

        addSendPack(msg->size_);

        switch (msg->id_)
        {
        case P2P_INIT:
            {
                return Init(msg);
            }
        case P2P_STOP:
            {
                return Stop();
            }
        case P2P_ADD_LISTEN:
            {
                return AddListen(msg);
            }
        case P2P_LAYOUT_DATA_INFO:
            {
                return getLayoutDataInfo(msg);
            }
        default:
            {
                return P2P_ERR_MSG_DISCARDED;
            }
        }
    }