一接收数据将其存入deque里

全局变量 deque<char>RecvDeq;

void AppendDeq(CTCPClient_CE *pTCPClient)

{

char recvBuf[MAX_BUFF_SIZE];

ZeroMemory(recvBuf,sizeof(char)*MAX_BUFF_SIZE);

int nRecv =0;

        //Sleep(200);

while(1)

{

nRecv = recv(pTCPClient->m_socket,recvBuf,MAX_BUFF_SIZE,0);

if(nRecv  == SOCKET_ERROR)

{

CString str;

str.Format("Receive data failed,error code:%d",WSAGetLastError());

pTCPClient->OnError(pTCPClient->m_pOwnerWnd,WSAGetLastError());

pTCPClient->OnDisConnect(pTCPClient->m_pOwnerWnd);

//closesocket(pTCPClient->m_socket);

//ReleaseLinkMemory(pHead);

break;

}

else if(nRecv  == 0)

{

pTCPClient->OnError(pTCPClient->m_pOwnerWnd,WSAGetLastError());

pTCPClient->OnDisConnect(pTCPClient->m_pOwnerWnd);

closesocket(pTCPClient->m_socket);

//ReleaseLinkMemory(pHead);

int index = MessageBox(pTCPClient->m_pOwnerWnd->m_hWnd,"与服务器断开连接,请重新登录","提示",MB_YESNO|MB_ICONQUESTION);

if(index == IDYES)

SendMessage(pTCPClient->m_pOwnerWnd->m_hWnd,WM_RELOGIN,0,0);

break;

}

if(nRecv>0)

{

for(int i=0;i<nRecv;i++)

RecvDeq.push_back(recvBuf[i]);

}

ZeroMemory(recvBuf,sizeof(char)*MAX_BUFF_SIZE);

//if(nRecv>0 && nRecv<MAX_BUFF_SIZE)

//break;

nRecv = 0;

}

ZeroMemory(recvBuf,sizeof(char)*MAX_BUFF_SIZE);

nRecv = 0;

//return RecvDeq;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值