一接收数据将其存入deque里
2014-03-19 10:26
10 查看
全局变量 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;
}
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;
}
相关文章推荐
- WebService客户端,接收数据解析存入数据库
- servlet接收xml数据,并存入数据库的知识储备
- python3将接收到的json数据存入数据库【mysql】
- 用doPost来接收post传过来的数据并存入mysql数据库
- 关于angular post提交数据接收问题
- Qt采用Qextserialport 接收发送16进制数据
- 回射程序3(服务器)——客户服务器不定长接收数据
- GCDAsyncSocket 接收不到数据
- CSerialPort类接收数据时comstat未初始化
- SBJSON的使用;OC中接收JSON 数据转到NSString;以及JSON数据和NSDictionary的区别;swift转OC
- form表单传递数组数据、php脚本接收
- 简单写一个加入组播组接收到数据的代码
- java Servlet 接收POST数据格式
- 以singleTask或singleInstance方式加载的activity如何接收intent的附加数据
- 串口接收数据错误0D变0A问题
- 16.3.2 接收网络数据recv()
- Java基础知识强化之网络编程笔记03:UDP之UDP协议发送数据 和 接收数据
- 获取博客积分排名,存入数据库,读取数据进行绘图(python,selenium,matplotlib)
- AJAX第一步:AJAX接收返回类型为text/html的字符串数据
- vue 集成 axios 发送post请求 payload导致后台无法接收到数据问题