Day23-1
1 网络编程概念
- 网络:计算机网络,由在不同地理位置、不同的计算机主机,通过通信线路连接起来,形成的一套可以进行资源共享的系统。
- 网络编程:在已经拥有成熟的网络系统之后,在网络基础上通过程序实现不同计算机间资源或者数据的共享。
2 网络编程三要素
- 概述:在网络编程中,想要实现资源共享,必须遵循的三个基本准则
- 三要素:
IP地址、端口号、通信协议
2.1 IP地址
- 概述:在同一个网络中,用来识别不同计算机的唯一标识。
- 分类:
2.1.1 IPv4:
- 每个连接在网络上的计算机会分配一个32bit地址。
- 例如:二进制形式的IP地址是“11000000 10101000 00000001 01000010”。
- 改进:由于二进制的IP地址不容易操作和记忆,所以IP地址经常被写成十进制的形式,每个字节中间使用符号“.”分隔。于是,上面的IP地址可以表示为 “192.168.1.66”。IP地址的这种表示法叫做“点分十进制表示法”。
2.1.2 IPv6:
IPv6采用了128bit地址长度,每16个bit一组,全部使用十六进制方式表示
2.2 InetAddress类型
- 概述:
(1)InetAddress是Java语言用来封装IP地址的类型
(2)该类在java.net包,使用需要导包 - 常用的方法:
(1)static InetAddress getByName(String host)
:
根据计算机的主机名称,或者ip地址来获取描述的对象
(2)String getHostName()
:
获取该类对象中描述的主机名称
(3)String getHostAddress()
:
获取该类对象中描述的ip地址 - 如何查看ip地址:
打开命令行窗口:ipconfig
代码
package demos1;
import java.net.InetAddress;
import java.net.UnknownHostException;
public class Demo01 {
public static void main(String[] args) throws UnknownHostException {
//在程序中定义 某一台计算机的ip
String str = "192.168.38.226";
//在java程序中想要给某一台计算机发共享数据,不能通过字符串来指定ip
//只能通过对象来执行
InetAddress id = InetAddress.getByName(str);
InetAddress id2 = InetAddress.getByName("ibm-PC");
System.out.println(id);
System.out.println(id2);
//获取ip对象中维护的主机名称
String name = id.getHostName();
System.out.println(name);
String name2 = id2.getHostName();
System.out.println(name2);
//获取ip对象中维护的ip地址
String host = id.getHostAddress();
System.out.println(host);
String host2 = id2.getHostAddress();
System.out.println(host2);
}
}
2.3 端口号
- 概述:设备上应用程序的唯一标识
- 定义:使用两个字节来表示端口号:0-65535
- 特点:
(1)程序启动之后,如果程序没有指定端口号,计算机默认分配端口号;
也可以在程序中自主指定端口号。
(2)随着程序的结束,端口号会被回收,可以被反复使用
(3)一个端口号不能同时被多个应用程序使用。
(4)一般常见的端口号有哪些:
tomcat:8080
mysql:3306
oracle:1521
qq:4000
计算机系统:0-1024
图示:
3 通信协议
概述:通过计算机网络可以使多台计算机实现连接,位于同一个网络中的计算机在进行连接和通信时需要遵守一定的规则。
4 UDP协议和TCP协议
- 概述:UDP协议和TCP协议都是传输层的协议,都是端到端协议
- UDP协议:(User Datagram Protocol)用户数据报协议
(1)UDP是无连接通信协议。即在数据传输时,数据的发送端和接收端不建立逻辑连接。简单来说,当一台计算机向另外一台计算机发送数据时,发送端不会确认接收端是否存在,同样接收端在收到数据时,也不会向发送端反馈是否收到数据。
(2)优点:
使用UDP协议消耗系统资源少,通信效率高。
(3)缺点:
因为UDP发送端和接收端不会建立连接,所以可能会造成数据丢失的情况,不能 保证数据的完整性。所以在传递一些重要的数据时,不建议使用UDP通信。
(4)应用:所以通常都会用于音频、视频和普通数据的传输。 - TCP协议:(Transmission Control Protocol)传输控制协议
(1)TCP协议是面向连接的通信协议。即传输数据之前,在客户端和服务端建立逻辑 连接,然后再传输数据,它提供了两台计算机之间可靠无差错的数据传输。
(2)建立稳固连接的方式:由客户端向服务端发出连接请求, 每次连接的创建都需 要经过“三次握手”。
(3)三次握手:TCP协议中,在发送数据的准备阶段,客户端与服务器之间的三次交互, 以保证连接的可靠
(i)第一次握手,客户端向服务器端发出连接请求,等待服务器确认
(ii)第二次握手,服务器端向客户端回送一个响应,通知客户端收到了连接请求
(iii)第三次握手,客户端再次向服务器端发送确认信息,确认连接
(iv)完成三次握手,表示连接建立成功,就表示客户端和服务端传输数据是没有问题的。
(4)好处:由于这种面向连接的特性,TCP协议可以保证传输数据的安全,所以应用 十分广泛,例如上传文件、下载文件
(5)缺点:耗费资源、效率低 - 图示: