VB聊天工具:借助服务器端实现P2P通信

来源:互联网 发布:mac 应用程序开发 编辑:程序博客网 时间:2024/05/22 07:58

VB聊天工具:借助服务器端实现P2P通信

博主最近自己做了一款聊天工具,类似qq的样子,来简单分析一下如何借助服务器帮助建立P2P的连接进行在线通信

假设A要与B通信,S是服务器端

那么A、B与服务器要用tcp连接,这样A、B在连接S时会告诉S自己的ip;A与B之间用udp连接,需要互相知道对方的ip和port,这个需要S告诉它们。

连接流程如下:

1。首先A登录,以tcp连接S,S得知A的ip,写入数据库ip表;B登录,以tcp连接S,S得知B的ip,写入数据库ip表

2。A要跟B聊,A的udp绑定一个端口后,向S发送:“我要跟B聊,我的ip是- -,udpport是- -”

3。S收到A的请求,检查数据库ip表是否存在B的ip

4。S在ip表查找到B的ip,S发送给B :“A要跟你聊,A的ip是- -,udpport是- -”

5。B收到S的信息,B的udp绑定一个端口,向S发送: “我的udpport是- -”

6。S收到B的信息后,发送给A:“B的ip是- -,udpport是- -”

至此,A与B互相知道了对方的ip和udp绑定的端口号,可以实现udp通信。

当然,实际代码操作时,需要将A,S,B之间的消息固定格式,接收后解码然后进行下一步。如果A,B是不同内网,还需要解决内网穿透问题。

0 0