博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简单的UDP
阅读量:4199 次
发布时间:2019-05-26

本文共 711 字,大约阅读时间需要 2 分钟。

1、client A 登录 通过http服务器 webservices 验证成功获取自身信息与好友

列表信息等。

2、Http服务器登记client A的NAT后的IP地址与端口

3、Client B登录 通过http服务器 webservices 验证成功获取自身信息与好友列

表信息等。

4、Http服务器登记client B的NAT后的IP地址与端口

5、Client A想发送消息给Client B,向HTtp服务器获取Client B的在线IP地址

6、Client A获得Client B的IP地址后并发送UDP信息到Client B

7、Client A与Client B请求失败,信息丢失,此时Client A报告Http服务器要求

服务器帮忙对Client B进行通知

8、Http服务器接到此命令后,将Client A的IP地址发给Client B,要求他连接

9、Client B收到HTTP服务器的信息后发送请求到 Client A

10、由于此时Client A NAT已经存在Clinet B的session,所以此时 Client A与

Client B建立链接成功。

11、Client A发送消息到 Client B成功,不经HTTP服务器中转

总结:换句话说就是HTTP服务器启动了“和事老”的功能。为不信任的两个人发

出命令从而使他们达到了一种互相承认而此建立链接关系 

其中最主要的是Server 的一个方法就是发送消息到被打洞的客户端

客户端发送消息需要判断该消息是否发送成功,不成功则要求请求打洞.若成功则不需要要求打洞!

客户端在接收到服务器的打洞指令后,则作出UDP发送响应。

转载地址:http://yauli.baihongyu.com/

你可能感兴趣的文章
【一天一道LeetCode】#114. Flatten Binary Tree to Linked List
查看>>
【unix网络编程第三版】阅读笔记(二):套接字编程简介
查看>>
【一天一道LeetCode】#115. Distinct Subsequences
查看>>
【一天一道LeetCode】#116. Populating Next Right Pointers in Each Node
查看>>
【一天一道LeetCode】#117. Populating Next Right Pointers in Each Node II
查看>>
【一天一道LeetCode】#118. Pascal's Triangle
查看>>
【一天一道LeetCode】#119. Pascal's Triangle II
查看>>
【unix网络编程第三版】ubuntu端口占用问题
查看>>
【一天一道LeetCode】#120. Triangle
查看>>
【unix网络编程第三版】阅读笔记(三):基本套接字编程
查看>>
【一天一道LeetCode】#121. Best Time to Buy and Sell Stock
查看>>
【一天一道LeetCode】#122. Best Time to Buy and Sell Stock II
查看>>
【一天一道LeetCode】#125. Valid Palindrome
查看>>
【一天一道LeetCode】#231. Power of Two
查看>>
【一天一道LeetCode】#202. Happy Number
查看>>
带你深入理解STL之Vector容器
查看>>
带你深入理解STL之Deque容器
查看>>
带你深入理解STL之Stack和Queue
查看>>
带你深入理解STL之Set和Map
查看>>
Redis源码剖析--源码结构解析
查看>>