编写一个网络程序,为了与其他网络程序通信,至少要知道对方的什么信息?

  • IP地址

TCP与UDP协议有什么不同的呢?什么时候该选择哪种协议?HTTP使用的是TCP还是UDP?不重要的短信息传送之类的功能更适合使用TCP还是UDP?

  • TCP协议是一种以固接连线为基础的协议,它提供两台计算机间可靠的数据传输,TCP可以保证从一端数据送至连接的另一端时,数据能够准确送达,而且抵达的数据的排列顺序和送出时的顺序相同。
  • 而UDP协议是无连接通信协议,不保证数据的可靠传输,但能够向若干个目标发送数据,或者接收来自若干个园的数据,UDP以独立发送数据包的方式进行

比如打电话这样需要点对点通信,不需要第三个人知道我们的内容,可以使用TCP协议。如果我们需要开会,QQ群内聊天,需要UDP协议。不过UDP协议没有TCP传输安全(指传输过程可能丢失信息)。所以更安全的方式还是TCP,但是TCP只能一对一链接,这是他们两个的缺点。

  • 查百度得知,不同的HTTP版本使用不同的协议。HTTP/1.1 和 HTTP/2 都是基于 TCP 传输协议的,而 HTTP/3 是基于 UDP 传输协议的。

Google 就自己架起炉灶搞了一个基于 UDP 协议的 QUIC 协议,并且使用在了 HTTP/3 上

-- 引用自《知乎

  • 更适合UDP。原因见上

打开浏览器浏览某个网页,使用资源监视器查看该浏览器使用了什么端口?(打开路径:任务管理器-性能-打开资源监视器) 。使用“curl -v 某个网址”,查看之间的HTTP通信信息,并做记录。



以www.baidu.com为例子

使用Socket进行编程,使用的是TCP还是UDP协议?观察TCPClientTest.java,其输入流、输出流哪个是从网络读数据,哪个是向网络发送数据?程序中有出现TCP或UDP协议的细节吗?观察TCPClientTest.java,该程序可以同时进行从网络上读、向网网络上写吗?

  • TCP协议。

启动TCPEchoServer.java服务器,然后使用两个客户端(比如两个telnet或两个网络调试助手)同时连接该服务器,可以连接成功吗?为什么?

最新文章

  1. iOS开发——UI进阶篇(十)导航控制器、微博详情页、控制器的View的生命周期
  2. 【Unity基础知识之三】Unity Assets目录下的特殊文件夹名称
  3. c++中io流的使用
  4. winform 禁用鼠标滚轮
  5. ref参数的用途
  6. Hibernate_13_QBC查询
  7. Ruby学习-第二章
  8. THashMD5,THashSHA1,THashBobJenkins,TIdHashMessageDigest5的用法
  9. 使用MSPT实现二层冗余
  10. 使用HeartBeat实现高可用HA的配置过程详解
  11. linux内核代码的编写初步以及makefile的配置
  12. emWin酿造机过程演示,含uCOS-III和FreeRTOS两个版本
  13. 小妖精的完美游戏教室——buff系统
  14. C++中的stack类、QT中的QStack类
  15. C - Alphabetic Removals
  16. MSSQL索引视图(indexed view)之简述及使用
  17. Spring Boot学习笔记:JavaMailSender发送邮件
  18. RHEL7禁用网卡命名规则
  19. http协议POST请求头content-type主要的四种取值
  20. Python 用hashlib。md5加密算法

热门文章

  1. 代码随想录算法训练营day23 | leetcode 669. 修剪二叉搜索树 ● 108.将有序数组转换为二叉搜索树 ● 538.把二叉搜索树转换为累加树
  2. z order curve
  3. 【Java-01-2】java基础-基本语法(2)(关系运算,if,循环)
  4. git手记
  5. JavaScrip核心基础(讲师李立超)
  6. Python爬取亚马逊商品页面
  7. Mysql优化工具
  8. c++ sizeof详解
  9. mysql生成随机数的函数
  10. Mac上好用的app们