有没有人知道AsyncSelect是怎么用啊!!!急!!再线等!!!
解决方案 »
- SHBrowseForFolder如何将弹出的选择路径的对话框至于最顶层?
- [深圳] 时隔5年,再次踏上深圳的土地,多变的建筑,不变的兄弟情
- 在编写网络文件传输遇到的问题,程序是基于UDP,使用CSocket类
- 如何再打开文件后改变滚动条宽度?
- 请教个关于delete运算符的问题?
- 请高手帮忙解答一下数值传递的问题,在线等,在线等
- ODBC操作长字符的问题!
- 如何在CSocket中设置定时器?
- 高分求一简单程序。只实现该程序的一个函数就可以。问题如下:
- ACTIVEX 加载的问题
- 在VC或sdk中如何使程序在后台运行,但是可以接受用户的消息?有没有例子?谢谢了!
- Access中如何进行位操作阿
当使用这条语句后 上边四个参数分别对应以下四个函数
On_Send On_Receive On_Accept On_Connect
这四个函数都是CAsyncSocket类的虚函数
只要重载这四个函数 添加上相应的代码就可以使用了
void CCSockClientDlg::OnSend()
{
if (m_clientSocket.m_bConnected)
{
m_clientSocket.m_nLength=GetDlgItem(IDC_EDITMSG)->GetWindowText
(m_clientSocket.m_szBuffer, sizeof(m_clientSocket.m_szBuffer));
m_clientSocket.AsyncSelect(FD_WRITE);
SetWindowText("");
}
}void MySock::OnSend(int nErrorCode)
{
Send(m_szBuffer,m_nLength,0);
m_nLength=0;
memset(m_szBuffer,0,sizeof(m_szBuffer));
//继续提请一个“读”的网络事件,接收Server消息
AsyncSelect(FD_READ);
CAsyncSocket::OnSend(nErrorCode);
}
不明白为什么?所以上网问的!
如:AsyncSelect(FD_CLOSE)就是只响应关闭消息,其它的消息都不响应,也就是说底层将不传递除了FD_CLOSE以外的消息,这样你的接收、发送、连接的响应函数都不能得到调用,除非你再次用AsyncSelect打开相应的消息。