当使用SOCK_DGRAM时,还能用CAsyncSocke::OnReceive来判断接受到数据吗??
解决方案 »
- 为什么给CEdit控件SetWindowText不成功
- 数据插入SQL数据库,如何去除源数据中的前后空格?
- 主线程创建的线程和完成端口创建的线程是如何协调通信的
- CString str = m_PlayPps.GetAuthorString(NULL);大家来看看
- 有一个简单的问题(MDI)
- dll初始化是创建线程,出错
- 我的工程如何在VC++6.0中使用
- 请问串口通信里当WaitCommEvent()函数中的事件发生后,执行所要的操作,而手工重置事件应该怎么办?
- 如何得知访问磁盘的进程信息?
- 如何实现象Word中的图文混排效果,请大侠指点!谢谢
- 关于钩子!!求助!!!!
- 用realplayer的Activex控件做rm播放器,如何实现全屏播放?
[TestDoc.h]
...
CSocketSrv* m_pSocket;
...[TestDoc.cpp] CTestDoc::InitSocket()
{
CSocketSrv* m_pSocket = new CSocketSrv(this);
m_pSocket->Create( nPort, SOCK_DGRAM );
....
}
void CTestDoc::ProcessRead()
{
BYTE bBuffer[1024];
char sShow[1030];
while ( m_pSocket->Receive( bBuffer, 1024 ) > 0 )
{
wsprintf( sShow, "Get:%s", bBuffer);
AfxMessageBox( sShow, MB_OK);
} m_pSocket->Close();
}
[SocketSrv.h] class CTestDoc;
class CSocketSrv: public CAsyncSocket
{
public:
CSocketSrv(CTestDoc* pDoc);
public:
CTestDoc* m_pDoc;
virtual void OnReceive(int nErrorCode);
...
}[SocketSrv.cpp]
CSocketSrv::CSocketSrv(CTestDoc* pDoc)
{
m_pDoc = pDoc;
} CSocketSrv::OnReceive(int nErrorCode)
{
CAsyncSocket::OnReceive(nErrorCode);
m_pDoc->ProcessRead();
}