java网络编成

一. 认识网络编成

1.1 什么是网络编程

网络编程可以让程序与网络上的其他设备中的程序进行数据交互

1.2 实现网络编成的三个要素

ip地址:设备在网络中的唯一标识
端口:应用程序在设备中的唯一标识
协议: 数据在网络中传输的规则,常见的协议有UDP和TCP两种协议
在这里插入图片描述
ipv4: 32位,能表示的信息量就是四十多亿
不够用
在这里插入图片描述

1.3 域名、dns服务器、ip地址之间的关系

我们使用的电脑中一般都有自带一个域名解析器,可以将域名解析为ip地址,如果是没有访问过的一些域名,就会去运营商的dns服务器中找到ip地址。自带的dns会保存访问过的域名和ip地址的映射。下次再访问就不用再去查ip地址了。

1.4 使用局域网ip有什么好处

在这里插入图片描述

二. java.net包

2.1 InetAddress类:表示互联网协议 (IP) 地址

InetAddress类没有构造方法,所以不能直接new出一个对象;

可以通过InetAddress类的两个静态方法获得InetAddress的对象;

InetAddress.getLocalHost(); 本地主机的主机对象

InetAddress.getByName(""); 非本地的主机对象

主机对象有什么方法呢

计算机名: getHostName()
IP地址: getHostAddress()
getAddress();//获取字节数组形式的IP地址

2.2 端口号(进程号)

被规定是一个16位的二进制, 范围就是0~65535
2的十六次方
肯定够用
端口类型
周知端口0~1023被预知的应用占用(http80, ftp21)
注册端口1024~49151分配给用户进程或者某些应用程序(tomcat8080,mysql3306)
动态端口49152~65535一般不固定进程, 用来动态分配

2.3 通信协议

链接和通信数据的规则就叫做协议
全世界都应该有一个标准才好
在这里插入图片描述
程序员在应用层进行开发, 需要看传输层的两个协议
一个是udp : 用户数举报协议
一个是TCP : 传输控制协议
在这里插入图片描述
三次握手: 确立链接
四次握手: 断开链接
在这里插入图片描述

在这里插入图片描述

2.4 udp

DatagramPacket表示存放数据的数据报
发送类型:
DatagramPacket(byte[] buf, int length, InetAddress address, int port);
要发送的内容,字节数组
要发送内容的字节长度
接受端的ip地址
接受端的端口号

接受类型:
DatagramPacket(byte[] buf, int length):

以上数据对象有了
那么发送和接受对象呢
DatagramSocket类:
DatagramSocket(): / DatagramSocket(int port):
表示创建一个默认的套接字,并绑定到本地地址和一个随机的端口号或者专门绑定一个端口号(这里就很好理解, 为啥udp是面向无链接的)

基本方法:
close(): 关闭套接字
recevie(DatagramPacket dp): 接受数据报
send(DatagramPacket dp):发送数据报
在这里插入图片描述
在这里插入图片描述
说白了, udp的传输是让数据报(最大只能是64kb)自己去找目的地.

2.5 Tcp

在这里插入图片描述
也就是说, 这种传出协议, 面向的是一条点对点的通信管道, 建立起管道之后使用io流来实现通信的.
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值