一、网络编程概述
概述:
Java是 Internet 上的语言,它从语言级上提供了对网络应用程序的支持,程序员能够很容易开发常见的网络应用程序。
Java提供的网络类库,可以实现无痛的网络连接,联网的底层细节被隐藏在 Java 的本机安装系统里,由 JVM 进行控制。并且 Java 实现了一个跨平台的网络库,程序员面对的是一个统一的网络编程环境。
基础:
网络编程的目的:
网络编程的目的就是指直接或间接地通过网络协议与其它计算机进行通讯。
主要存在的问题:
如何准确地定位网络上一台或多台主机
找到主机后如何可靠高效地进行数据传输。
传输数据需要遵守一定的协议,被广泛运用的是TCP/IP协议
协议模型:
通信要素:
IP地址:InetAddress
网络中设备唯一标识;本地回环地址(localhost):127.0.0.1;不易于记忆,易于记忆的是域名:
域名容易记忆,当在连接网络时输入一个主机的域名后,域名服务器(DNS)负责将域名转化成IP地址,这样才能和主机建立连接。
端口:port
为了进行应用程序的标识区分,就提供了一些数字来标识应用程序。比方QQ 用4000来标识,我的电脑QQ发消息,发送到IP 地址是: 192.168.0.1 的编号为4000的应用程序上。而这些数字就是(逻辑)port。
端口号限定在0-65536之间,比如常见的MySQL(3306),http(80),一般我们应该使用1024以后的端口通信避免通信端口冲突;
端口号与IP地址的组合得出一个网络套接字。
二、InetAddress类的创建和使用
InetAddress类用来封装我们前面讨论的数字式的IP地址和该地址的域名。
1.实例化
通过 getLocalHost()——本机、getByName()以及getAllByName()三个静态方法进行访问
2.两个方法:
String getHostName():获取InetAddress对象的域名;
String getHostAddress():获取InetAddress对象的IP地址;
实例:
public static void main(String[] args) throws UnknownHostException { InetAddress address = InetAddress.getByName("www.atguigu.com"); System.out.println("address = " + address); System.out.println(address.getHostName()); System.out.println(address.getHostAddress()); }
三、网络通信协议
1.网络通信协议
对速率、传输代码、代码结构、传输控制步骤、出错控制等的指定标准