用一个while监视么?我的意思是:比如聊天室吧客户A发送消息MSG到服务器,然后服务器再把这个MSG发给每一个人,于是大家都看到了.问题是:MSG到了服务器后,被服务器的接受,但是却不会"自动"调用什么函数,来使这个MSG显示到屏幕上.
解决方案 »
- CTreeCtrl右键弹出菜单问题
- 关于Visual Studio .net 2003 中Visual c++集成开发环境的问题。
- 请问如何在MFC里通过进程名字删除这个进程?多谢!
- 需要写串口通信测试软件,谁能介绍或共享资料
- 如何让繁体系统下显示简体和繁体
- CheckBox选中时如何呈X,而非V?
- 两个线程怎么样对数据库进行操作,而不会发生冲突问题。
- vc中怎么使用现有的类,窗体怎么从一个类继承
- 请教 : 一程序在load dll 的时候,是从什么路径开是读的?
- 关于在DLL中使用资源的问题
- 用MFC进行串行化重载Serialize(CArchive& ar)时出现编译错误,百思不解?
- 多媒体文件?
你还要知道各种异步模型,可参考
http://community.csdn.net/Expert/topic/4673/4673206.xml?temp=.8040125
搜索一下模型能找到很多讨论异步通讯的问题
do
{
CMessage* pMsg = ReadMsg(pSocket);//读取服务器端发送过来的信息
if(pMsg == NULL)
return;
if(pMsg->m_bClose)//假如客户端关闭连接
{
//关闭该套接字
CloseSocket(pSocket);
pMsg->m_bClose = FALSE;
return;
}
//标示客户端登录进来
if(pMsg->type == -1)
{
//更新用户信息
UpdateList(pSocket);
}
}
while (!pSocket->m_pArchiveIn->IsBufferEmpty());
因为CSocket一般处理是和CSocketFile和CArchive一起使用的~~
所有的数据都是放在CArchive对应的缓冲里面,所以直接通过IsBufferEmpty()来判别是否还有数据~~~
用while来监控~~~