C++MFC聊天室私聊

客户端本地OnReceive()事件过程(客户端本地socket类)

char buff

客户端根据接收到消息的头部字段,判断消息类型,从而分别进行相应处理,上面代码对3种不同的消息,分别调用了两个处理函数,程序代码如下!

客户端发消息到服务器

服务器发消息到客户端

服务器里面有一个OnReceive(),用来接收客户端的消息

客户端里面有个OnReceive(),用来接收服务器的消息

这两个都要根据头文件进行判断,是否是用户退出还是接收还是什么之类的

服务器有个Onsend()
用来判断,是否是收到的消息是退出还是客户端发来的消息

服务器:呃呃呃呃呃呃呃呃呃呃呃呃呃呃呃呃呃呃鹅鹅鹅鹅鹅鹅饿恩3
OnRecvive()
客户端
Onsend()
OnReceive()

  1. 服务器端接收到用户发的一串字符。
  2. 服务器进行判断,消息是哪个客户端发的,又要发到哪个客户端去。
  3. 客户端要从服务器端的字符串得知,是哪个客户端发的,哪部分是内容。

服务器的功能
转发消息,通知谁在线或离线
->的用法
结构体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函数很重要,可以保证双方连续发送数条消息,时也照样可以正确接收到。

客户端

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值