概念
计算机网络
-
通常也简称网络,是指容许节点分享资源的数字电信网络[1]:1-3。在电脑网络,电脑设备会透过节点之间的连接(数据链路)互相交换数据。传输介质可分为有线及无线两类——有线的可用到双绞线、光纤电缆等介质[1]:1-4;无线则可用到Wi-Fi、NFC[
-
总结
- 将地理位置不同的计算机设备进行连接,实现数据的共享。
网络编程
-
指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来。 java.net 包中J2SE 的API 包含有类和接口,它们提供低层次的通信细节。 你可以直接使用这些类和接口,来专注于解决问题,而不用关注通信细节。
-
总结
- 在已有网络的环境下,按照规定实现接受和发送数据即可。中间过程不必关注
网络模型
网络三要素
IP地址
-
计算网络中,每个计算机的唯一标识
-
IPV4
- 由32bit组成,即4个字节,每个字节范围0~255,4个数字组成。
-
IPV6
- 有128bit组成,即16个字节,由8组十六进制数组成
-
DNS
- 域名解析器 记忆IP地址不方便,出现了使用名称的表示方式 负责解析名称的,最终转为IP地址形式。
-
本地回环地址
- 127.0.0.1
localhost
- 127.0.0.1
端口号
- 计算中每个应用程序的标识,范围是065535,其中01023被系统占用
协议
-
双方通信的规则
-
常用:UDP和TCP
-
UDP
- 用户数据报包协议
- 面向无连接,不需要与接收端建立连接,直接发送数据。
- 不可靠协议,因为数据有可能会丢失,效率高。
-
如:cts、会议软件、发快递
-
TCP
-
传输控制协议
-
面向有连接,必须双方建立连接受才能进行数据传输。
-
可靠协议,不会有数据丢,效率低
-
确定连接
-
三次握手模式确定连接
- A发 B接
- 第一次,A--->B
- 第二次:B接到,并给A回信息
- 第三次:A接到
-
-
InetAddress
在java中是面向对象思想,因此表示计算机唯一标识的这些数字也看成是一类事物,因此就有对应的对象进行描述--InetAddress。 java.new包
方法
-
InetAddress getByName(String host)
- 根据host获取InetAddress对象
host:可以是主机名或主机的IP地址形式
- 根据host获取InetAddress对象
-
InetAddress getLocalhost()
- 获取本地主机的InetAddress对象
-
String getHostName()
- 获取主机名
-
String getHostAddress()
- 获取主机地址
UDP协议
两端:接收端和发送端
端点对象
- Datagramsocket
包对象
- DatagramPacket
发送端
- 1、创建Datagramsocket对象
- 2、创建DatagramPacket对象,并将数据和接受端信息封装到对象中
- 3、调用send方法发送
- 4、关闭
接收端
- 1、.创建Datagramsocket对象,必须指定端口,要与发送端中的包中的端口号要一致
- 2、创建DatagramPacket对象,用于接受数据
- 3、调用receive()方法接包
- 4、拆包
- 5、关闭
TCP协议
特点
- 面向有连接,可靠协议
两端
- 客户端和服务端
关键字
-
客户端
- Socket
-
服务端
- ServerSocket
客户端
-
步骤
- 1.创建套接字对象,邦定地址,端口号(服务端地址和端口号)
- 2.获取输出流对象,向服务端写数据
- 3.关闭套接字
-
Socket构造方法
-
Socket(InetAddress address,int port)
- 创建一个流套接并将其连接到指定IP地址的指定端口号
-
Socket(String host,int port)
- 创建一个流套接字并将其连接到指定主机上的指定端口号
-
-
方法
-
OutputStream getOutputStream()
- 返回次套接字的输出流
-
InputStream getInputStream()
- 返回此套接字的输入流
-
-
注意
-
循环读写时需加方法
- shutdownInput()
- shutdownOutput()
-
服务端
-
步骤
- 1.创建服务端端点对象,并邦定端口号(与客户端的端口号要一致)
- 2.获取Socket对象(侦听要连接的客户端)
- 3.获取输入流对象,读取客户端数据
- 4.关闭服务端端点对象
-
ServerSocket构造方法
-
ServerSocket(int port)
- 创建绑定到特定端口的服务端套接字
-
-
方法
-
Socket accept()
- 侦听并接受到此套接字的连接
-
广播和组(多)播
UDP协议
- 单播
- 广播
- 组播
广播
-
一个主机可以与该网络内中的所有主机进行数据共享
-
广播地址
- 255.255.255.255
组播
- 能实现单薄和广播的效果,在同一组中的设备可以进行数据通信
- 需要使用的对象是,DatagramSocket的字类对象,MulticastSocket
- 组播的地址是:224.0.0.0~239.255.255.255之间,包括两边,224.0.0.0不建议使用。
方法
-
void joinGroup(InetAddress mcastaddr)
- 加入多播组
-
void leaveGroup(InetAddress mcastaddr)
- 离开多播组