客户端本地OnReceive()事件过程(客户端本地socket类)
char buff
客户端根据接收到消息的头部字段,判断消息类型,从而分别进行相应处理,上面代码对3种不同的消息,分别调用了两个处理函数,程序代码如下!
客户端发消息到服务器
服务器发消息到客户端
服务器里面有一个OnReceive(),用来接收客户端的消息
客户端里面有个OnReceive(),用来接收服务器的消息
这两个都要根据头文件进行判断,是否是用户退出还是接收还是什么之类的
服务器有个Onsend()
用来判断,是否是收到的消息是退出还是客户端发来的消息
服务器:呃呃呃呃呃呃呃呃呃呃呃呃呃呃呃呃呃呃鹅鹅鹅鹅鹅鹅饿恩3
OnRecvive()
客户端
Onsend()
OnReceive()
- 服务器端接收到用户发的一串字符。
- 服务器进行判断,消息是哪个客户端发的,又要发到哪个客户端去。
- 客户端要从服务器端的字符串得知,是哪个客户端发的,哪部分是内容。
服务器的功能
转发消息,通知谁在线或离线
->的用法
结构体stu
->的作法就是在引用结构体中的变量!!
形式如:p->结构体成员(如p->num)
他的作用相当于stu.num或(*p).num、
同步和异步的区别
举个例子:普通B/S模式(同步)AJAX技术(异步)
同步:提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不能干任何事
异步: 请求通过事件触发->服务器处理(这是浏览器仍然可以作其他事情)->处理完毕
同步就是你叫我去吃饭,我听到了就和你去吃饭;如果没有听到,你就不停的叫,直到我告诉你听到了,才一起去吃饭。
异步就是你叫我,然后自己去吃饭,我得到消息后可能立即走,也可能等到下班才去吃饭。
所以,要我请你吃饭就用同步的方法,要请我吃饭就用异步的方法,这样你可以省钱。
举个例子 打电话时同步 发消息是异步
网络通信双方,都有各自的套接字,该套接字与特定的ip地址和端口号有关
sock_stream是tcp
windows套接字的相关api函数称为winsock函数
在mfc中封装了windows sockets的全部功能,
CAsyncSocket
CSocket
在mfc中,所有类均有一个变量m_hWnd表示该类的实例句柄
csocket派生于CAsyncSocket
csocket是同步socket类,
onconnect,onsend永远不会调用
连接按钮是在主对话框中“”“连接按钮中编写的”
AsyncSelect函数很重要,可以保证双方连续发送数条消息,时也照样可以正确接收到。
客户端