我利用CAsyncSocket派生类编写客户机服务器模型,客户机服务器已经联机成功,也能发送数据让其它测试程序收到,但就是触发不了OnReceive事件,以至于收不到数据。请大家帮帮忙阿!
void CNetSocket::OnReceive(int nErrorCode)
{
if(nErrorCode==0)
m_pDlg->OnReceive();
CAsyncSocket::OnReceive(nErrorCode);
}
void CNetSocket::OnReceive(int nErrorCode)
{
if(nErrorCode==0)
m_pDlg->OnReceive();
CAsyncSocket::OnReceive(nErrorCode);
}
解决方案 »
- recordset GetRows的使用
- win32中多个子控件如何共用一个回调函数
- 如何用VC跨数据库查询(sql)
- 请问在picture控件上面如何贴很多个小的ICO图标
- 有关程序结束的问题
- 有谁能帮帮我....I am waiting for you....
- 难道使用vc里的odbc数据库,再每台机子上使用,都得注册数据源吗?真的这么麻烦吗?那还不如用dao,!!odbc这样,有什么意义呢?
- 谁能解释,什么是全局函数
- 大家帮我看一段串口监视程序,看有没有问题?
- 想知道一下VB最高端的实际应用情况---->>>
- 请问:编写dos环境下(msdos6/7,pcdos7)下的程序,能用vc的哪一个版本?vc1.5?
- 关于com组件注册失败
我想这就是问题了,
还有, 你的聊天室如何控制受到的信息啊,
都是MyDialog::OnReceive处理??
几乎同时到达的先后两个数据, 你就不怕前面的没有处理完, 后面的就进入缓冲区了?
服务端:
CListenSocket和CConnectSocket
客户端:
CClientSocket
通常代码是
CListenSocket listen;
...
listen.Create()
listen.Listen()
...
//CListenSocket重载OnAccept
CConnectSocket * connect=new CConnectSocket;
listen.Accept(*connect);
...
//CConnectSocket重载OnReceive()
Receive()
...
//和OnClose()
Close()
不知你是怎么做的(对象是否搞错了)
可是我客户端的派生类里只有OnReceive(),也收不到数据啊!
或自己调用winsock的Receive写一个函数
我加了一句m_sConnectSocket.AsyncSelect(FD_READ|FD_WRITE|FD_OOB);就可以了!