大数据,网络编程中的UDP与TCP

昨天,我们学习了多线程,今天我们看看计算机中的网络是如何建立起来的。

网络编程概述

计算机网络是将不同的计算机通过通信连接起来,在协议的协调下,我们实现资源的共享和信息的传递。

网络编程是通过网络互连实现不同计算机的数据交换。

网络参考模型图

网络通信的三要素

IP、端口、协议

我要跟胡歌说话.

第一个条件:我要先找到胡歌(IP 网络中设备的标识)

第二个条件:胡歌得有接收数据的地方 耳朵 (端口 用于标识进程的逻辑地址,不同进程的标识)

第三个条件:我跟胡歌说话,关晓彤能接收到,用什么方式接收啊,我说火星语言关晓彤懂吗,说三次元语言关晓彤懂吗,不懂是吧,所以我还是说中文吧。(协议 常见TCP UDP)

Java中的InetAddress类

获取任意主机:getByName

主机名:getHostName

主机IP地址:getHostAddress

Java中的InetAddress类

协议UDP与TCP

UDP是不可靠协议,不需要建立连接,速度快,每个封装的数据包大小限制在64K,如发短信。

TCP是可靠协议,必须要通过三次握手完成连接,效率低,如下载。

实现连接的Socket

Socket套接字是有唯一标识的IP地址和端口号组合在一起构成的唯一标识的标识符套接字。

原理机制

Socket机制图解

UDP传输

UDP传输-发送端

UDP传输-接收端

TCP传输

TCP传输-客户端

TCP传输-服务器端

在TCP协议传输过程中容易出现问题:客户端已经连上服务端,但是两端都在等待,没有任何的数据传输。这是因为read()方法或者readLine方法是阻塞式的。

解决办法:使用自定义结束标记,shutdownInput,shutdownOutput方法

这就是对网络编程的简单介绍,希望可以帮助到大家,有什么疑问可以在下方留言哦,点击更多~

感谢坚持关注的朋友

世界很大,幸好有你

欢迎在评论区留下你的问题或困惑,我将每天与你分享我的观点和心得。

聚焦最新科技咨讯,探寻未来智能领域,我是女陶。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180802A0DDHL00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券