首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

这个有关问题很困惑,如何能实时的显示recvfrom接受的数据!

2012-01-05 
这个问题很困惑,怎么能实时的显示recvfrom接受的数据!!类:CSocketNetworkg_RecvBuf[0].AddTail(RecvBuf)/

这个问题很困惑,怎么能实时的显示recvfrom接受的数据!!
类:CSocketNetwork
g_RecvBuf[0].AddTail(RecvBuf);//添加数据到队列

类:CNetworkMsgDlg

PUCHARpRecvData;//全局变量
void   CNetworkMsgDlg::OnMenuitem()  
{
        pRecvData   =   (PUCHAR)g_RecvBuf[0].RemoveHead();   //获取队列信息

}
//我用了个定时器5秒显示一次,但是这样有些数据不能显示
void   CNetworkMsgDlg::OnTimer(UINT   nIDEvent)  
{
if(nIDEvent==1)
{
int   i=0;
m_RecvBuf.InsertString(i++,(CString)pRecvData);
}
CDialog::OnTimer(nIDEvent);
}
怎样实现如果有数据发来马上显示到m_RecvBuf控件

[解决办法]
不要用定时器,直接放在接收函数里面。如果收到的数据放到队列里的,那就另外开一个线程阻塞在队列等待数据。
[解决办法]
自定义消息,收到数据后将数据发送消息到消息函数,就可以实时显示了。
[解决办法]
int WSAIoctl (
SOCKET s,
DWORD dwIoControlCode,
LPVOID lpvInBuffer,
DWORD cbInBuffer,
LPVOID lpvOUTBuffer,
DWORD cbOUTBuffer,
LPDWORD lpcbBytesReturned,
LPWSAOVERLAPPED lpOverlapped,
LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionROUTINE
);

热点排行