Java函数库小技巧:网络编程实用工具
Java作为一门广泛应用于网络编程中的编程语言,在网络编程中涉及到了许多常用的工具类,例如Socket、URL等等,本文将从常用的网络编程实用工具库入门开始,列举出一些Java应用于网络编程中的函数库,并且附上实际代码,以供大家参考。
一、Socket
Java Socket是网络通讯中极为重要的一个类库,Socket类是Java Socket编程的核心,它提供了TCP和UDP协议的网络套接字(Socket),实现了应用程序之间的双向通信,本文将会通过最基础的操作入手。
1.实现连接服务器
connect方法用于请求与指定IP和端口的服务器建立连接,该方法会阻塞调用线程直到连接成功或者出现异常。
public static void main(String[] args) throws Exception {
Socket socket = new Socket("127.0.0.1", 8080);
}
2.发送数据
在连接建立后,可以通过OutputStream类获取Socket的输出流,并使用write方法向服务器发送数据。
public static void main(String[] args) throws Exception {
Socket socket = new Socket("127.0.0.1", 8080);
OutputStream outputStream = socket.getOutputStream();
outputStream.write("Hello, World!".getBytes());
}
3.接收数据
在连接建立后,可以通过InputStream类获取Socket的输入流,并使用read方法从服务器接收数据。
public static void main(String[] args) throws Exception {
Socket socket = new Socket("127.0.0.1", 8080);
InputStream inputStream = socket.getInputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = inputStream.read(buffer)) != -1) {
String data = new String(buffer, 0, len);
System.out.println(data);
}
}
4.关闭连接
使用完Socket之后,需要使用close方法关闭连接。
public static void main(String[] args) throws Exception {
Socket socket = new Socket("127.0.0.1", 8080);
socket.close();
}
二、URL
Java中的URL类可以用于访问网络资源,例如网页、图片等等,URL类可以接收一个URL地址作为参数,并获取这个URL的各种信息,例如协议、主机名、端口号、路径、查询字符串等等。
1.创建URL对象
创建URL对象可以通过传入一个URL字符串来实现。
public static void main(String[] args) throws Exception {
URL url = new URL("http://www.baidu.com");
}
2.获取URL信息
获取URL信息可以通过一系列的get方法来实现。
public static void main(String[] args) throws Exception {
URL url = new URL("http://www.baidu.com");
System.out.println("Protocol: " + url.getProtocol());
System.out.println("Host: " + url.getHost());
System.out.println("Port: " + url.getPort());
System.out.println("Path: " + url.getPath());
System.out.println("Query: " + url.getQuery());
}
3.读取网页内容
可以通过openStream方法获取URL的输入流,并读取其中的内容。
public static void main(String[] args) throws Exception {
URL url = new URL("http://www.baidu.com");
BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
}
三、InetAddress
Java中的InetAddress类用于表示IP地址,可以通过getByName或者getAllByName方法获取一个IP地址,本文将介绍如何使用getHostAddress方法获取IP地址,并且使用getHostName方法获取主机名。
public static void main(String[] args) throws Exception {
InetAddress address = InetAddress.getByName("www.baidu.com");
System.out.println("Host Address: " + address.getHostAddress());
System.out.println("Host Name: " + address.getHostName());
}
四、URLConnection
Java中的URLConnection类可以用于访问URL地址,它提供了支持HTTP协议的功能,能够模拟使用浏览器访问URL并获取其中的内容。
1.创建URLConnection对象
创建URLConnection对象可以通过URL对象的openConnection方法。
public static void main(String[] args) throws Exception {
URL url = new URL("http://www.baidu.com");
URLConnection connection = url.openConnection();
}
2.设置请求头和请求参数
可以通过addRequestProperty方法向URLConnection对象添加请求头属性,并且通过setDoOutput方法开启输出流,从而将请求内容写入URLConnection对象中,例如以下代码:
public static void main(String[] args) throws Exception {
URL url = new URL("http://www.baidu.com");
URLConnection connection = url.openConnection();
connection.addRequestProperty("Accept", "*/*");
connection.setDoOutput(true);
OutputStream outputStream = connection.getOutputStream();
outputStream.write("Hello, World!".getBytes());
}
3.读取返回内容
可以通过getInputStream方法获取URLConnection对象的输入流,并读取其中的内容。
public static void main(String[] args) throws Exception {
URL url = new URL("http://www.baidu.com");
URLConnection connection = url.openConnection();
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
}
以上就是Java应用于网络编程中的一些常用函数库,涉及到了Socket、URL、InetAddress、URLConnection,掌握这些函数库的使用,可以使得Java程序在网络编程中变得越来越快捷、简洁、优雅。
