1.网络编程
Java 提供的网络类库,可以实现无痛的网络连接,联网的底层细节被隐藏在Java 的本机安装系统里,由 JVM 进行控制。并且 Java 实现了一个跨平台的网络库,程序员面对的是一个统一的网络编程环境。
1.1 InetAddress类
- InetAddress 类主要表示 IP 地址,其一个实例就是一个ip地址。包含两个子类:Inet4Address、Inet6Address。
- InetAddress 类没有提供公共的构造器,而是提供了如下几个 静态方法来获取 InetAddress 实例:
- public static InetAddress getLocalHost()
- public static InetAddress getByName(String host)
- public static InetAddress getByAddress(byte[] addr)
- InetAddress 提供了如下几个常用的方法:
- public String getHostAddress() :返回 IP 地址字符串(以文本表现形式)
- public String getHostName() :获取此 IP 地址的主机名
- public boolean isReachable(int timeout):测试是否可以达到该地址
1.2 ServerSocket类
- ServerSocket 类的构造方法:
- ServerSocket(int port) :创建绑定到特定端口的服务器套接字。
- ServerSocket 类的常用方法:
- Socket accept():侦听并接受到此套接字的连接。
1.3 Socket类
- Socket 类的常用构造方法:
- public Socket(InetAddress address,int port):创建一个流套接字并将其连接到指定 IP 地址的指定端口号。
- public Socket(String host,int port):创建一个流套接字并将其连接到指定主机上的指定端口号。
- Socket 类的常用方法:
- public InputStream getInputStream():返回此套接字的输入流,可以用于接收消息。
- public OutputStream getOutputStream():返回此套接字的输出流,可以用于发送消息。
- public InetAddress getInetAddress():此套接字连接到的远程 IP 地址;如果套接字是未连接的,则返回 null。
- public InetAddress getLocalAddress():获取套接字绑定的本地地址。
- public int getPort():此套接字连接到的远程端口号;如果尚未连接套接字,则返回0。
- public int getLocalPort():返回此套接字绑定到的本地端口。如果尚未绑定套接字,则返回 -1。
- public void close():关闭此套接字。套接字被关闭后,便不可在以后的网络连接中使用(即无法重新连接或重新绑定)。需要创建新的套接字对象。 关闭此套接字也将会关闭该套接字的 InputStream 和 OutputStream。
- public void shutdownInput():如果在套接字上调用 shutdownInput() 后从套接字输入流读取内容,则流将返回 EOF(文件结束符)。 即不能在从此套接字的输入流中接收任何数据。
- public void shutdownOutput():禁用此套接字的输出流。对于 TCP 套接字,任何以前写入的数据都将被发送,并且后跟 TCP 的正常连接终止序列。 如果在套接字上调用 shutdownOutput() 后写入套接字输出流,则该流将抛出 IOException。 即不能通过此套接字的输出流发送任何数据。
1.4 UDP网络编程
UDP(User Datagram Protocol,用户数据报协议):是一个无连接的传输层协议、提供面向事务的简单不可靠的信息传送服务,类似于短信。
1.5 URL编程
1.5.1 URL类
- URL(Uniform Resource Locator):统一资源定位符,它表示 Internet 上某一资源的地址。
- 通过 URL 我们可以访问 Internet 上的各种网络资源,比如最常见的 www,ftp站点。浏览器通过解析给定的 URL可以在网络上查找相应的文件或其他资源。
- URL 的基本结构由 5 部分组成:
- <传输协议>://<主机名>:<端口号>/<文件名>#片段名?参数列表
1.5.2 URL类构造器
- public URL (String spec):通过一个表示 URL 地址的字符串可以构造一个URL 对象。例如:URL url = new URL(“http://www. atguigu.com/”);
- public URL(URL context, String spec):通过基 URL 和相对 URL 构造一个URL 对象。例如:URL downloadUrl = new URL(url, “download.html")。
- public URL(String protocol, String host, String file); 例如:URL url = new URL(“http”, “www.atguigu.com”, “download. html");
- public URL(String protocol, String host, int port, String file); 例如: URL gamelan = new URL(“http”, “www.atguigu.com”, 80, “download.html");
1.5.3 常用方法
- public String getProtocol( ) 获取该 URL 的协议名
- public String getHost( ) 获取该 URL 的主机名
- public String getPort( ) 获取该 URL 的端口号
- public String getPath( ) 获取该 URL 的文件路径
- public String getFile( ) 获取该 URL 的文件名
- public String getQuery( ) 获取该 URL 的查询名