网络编程
- 在网络通信协议下,实现网络互连的不同计算机上运行的程序间可以进行数据交换
网络编程三要素
IP地址
- 要想让网络中的计算机能够互相通信,必须为每台计算机指定一个标识号,通过这个标识号来指定要接收数据的计算机和识别发送的计算机,而IP地址就是这个标识号。也就是是设备的标识
- IPv4:32bit地址,4个字节,用二进制表示,如11000000 10101000 00000001 01000010,为了方便写成十进制,如192.168.1.66
- IPv6:互联网发展,IP需求变大,原有IPv4满足不了,通过IPv6重新定义地址空间,采用128bit地址长度,每16位一组,分成8组十六制数,如:2001:DB8:0:23:8:800:200C:417A
Java提供类InetAddress获取IP地址,此类表示Internet协议(IP)地址
- public static InetAddress getByName(String host):确定主机名称的IP地址。主机名称可以使机器名称,也可以使IP地址
- public String getHostName():获取此IP地址的主机名
- public String getHostAddress():返回文本显示中的IP地址字符串
package com.wangLuo;import java.net.InetAddress;
import java.net.UnknownHostException;/*** @author 林高禄* @create 2020-05-19-15:39*/
public class TestInetAddress {public static void main(String[] args) throws UnknownHostException {/*//通过127.0.0.1获取到的hostName是空的InetAddress address1 = InetAddress.getByName("127.0.0.1");// 这是我电脑的名称InetAddress address2 = InetAddress.getByName("PC-20190927NMRM");// ipv4InetAddress address3 = InetAddress.getByName("192.168.1.55");*/// ipv6InetAddress address4 = InetAddress.getByName("fe80::54aa:3450:cbfe:3976%11");String hostName = address4.getHostName();String hostAddress = address4.getHostAddress();System.out.println(hostName);System.out.println(hostAddress);}
}
输出:
PC-20190927NMRM
fe80:0:0:0:54aa:3450:cbfe:3976%11
端口
- 网络的通信,本质上是两个应用程序的通信。每台计算机都有很多的应用程序,那么在网络通信时,如何区分这些应用程序呢?如果说IP地址可以唯一标识网络中的设备,那么端口号就可以唯一标识设备中的应用程序了。也就是应用程序的标识
- 范围:2个字节表示的整数,0~65535,其中0~1023用于一些知名的网络服务和应用。
协议
- 通过计算机网络可以使多台计算机实现连接,位于同一个网络中的计算机在进行连接和通信时需要遵守一定的规则,这就好比在道路中行驶的汽车一定要遵守交通规则一样。在计算机网络中,这些连接和通信的规则被称为网络通信协议。它对数据的传输格式、传输速率、传输步骤等做了统一规定,通信双方必须同时遵守才能完成数据交换。常用的协议有UDP协议和TCP协议。