Java 是 Internet 上的语言,它从语言级上提供了对网络应用程序的支持,程序员能够很容易开发开发常见的网络应用程序
Java 提供的网络类库,可以实现无痛网络连接,联网的底层细节被隐藏在 Java 的本机安装系统里,由 JVM 进行控制。并且 Java 实现了一个跨平台的网络库,程序员面对的是一个统一的网络编程环境
目录
网络编程的目的
直接或间接地通过网络协议与其它计算机实现数据交换,进行通讯
如何实现网络中的主机相互通信
通信双方地址
端口号与 IP 地址的组合得出一个网络套接字:Socket
IP地址(InetAddress)
唯一的标识 Internet 上的计算机(通信实体)
本地回环地址(hostAddress):127 . 0 . 0 . 1
主机名(hostName):localhost
IP 地址分类方式:IPV4 和 IPV6 / 公网地址(万维网)和私有地址(局域网)
IPV4:4 个字节组成,4 个 0 - 255。大概 42 亿,30 亿在北美,亚洲 4 亿,2011 年已经用 尽。以点分十进制表示
IPV6:128 位(16 个字节),写成 8 个无符号整数,每个整数用四个十六进制位表示,数之 间用冒号分开
私有地址以 192 . 168 . 开头,范围即为 192 . 168 . 0 . 0 - 192 . 168 . 255 . 255,专门为组织 机内部使用
端口号
端口号标识正在计算机上运行的进程(程序)
不同的进程有不同的端口号
被规定为一个 16 位的整数 0 ~ 65535
端口分类:
公认端口:0 ~ 1023.被预先定义的服务通信占用(如:HTTP 占用端口 80,FTP 占用端口 21)
注册端口:1024 ~ 49151。分配给用户进程或应用程序。(如:MySQL 占用端口 3306,Oracle 占用端口 1521)
动态 / 私有端口:49152 ~ 65535
规则
TCP / IP 参考模型(或 TCP / IP 协议):国际标准
网络通信协议
计算机网络中实现通信必须有一些约定,即通过协议,对速率、传输代码、代码结构、传输控制步骤、出错控制等制定标准
在制定协议时,把复杂成分分解成一些简单的成分,再把它们复合起来。最常用的复合方式是层次方式,即同层间可以通信、上一层可以调用下一层,而与再下一层不发生关系。各层互不影响,利于系统的开发和扩展
InetAddress类的实例化
import java.net.InetAddress;
import java.net.UnknownHostException;
public class InetAddressTest {
public static void main(String[] args) {
try {
InetAddress inet1 = InetAddress.getByName("182.61.200.7");
System.out.println(inet1);
InetAddress inet2 = InetAddress.getByName("www.baidu.com");
System.out.println(inet2);
System.out.println(inet2.getHostName());
System.out.println(inet2.getHostAddress());
InetAddress inet3 = InetAddress.getByName("127.0.0.1");
System.out.println(inet3);
//获取本机IP地址
InetAddress inet4 = InetAddress.getLocalHost();
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
}
>>> /182.61.200.7
www.baidu.com/182.61.200.7
www.baidu.com
182.61.200.7
/127.0.0.1