10个常用的Java网络编程函数,轻松实现网络通讯
1. InetAddress类的getByName()方法:通过域名获取IP地址
InetAddress类是Java中网络编程中使用最为广泛的类之一,getByName()方法是其常用方法。该方法通过输入地址信息(如域名或IP地址),得到相应的网络地址的表示形式,返回的是一个InetAddress对象,其包含相应的IP地址和主机名信息。
例如:
String domainName = "www.baidu.com";
InetAddress ip = InetAddress.getByName(domainName);
System.out.println("域名 " + domainName + " 的IP地址是:" + ip.getHostAddress());
2. ServerSocket类的accept()方法:创建服务器端通信端口
ServerSocket类负责创建服务器端的通信端口,accept()方法则用于接收客户端的连接请求,并返回与客户端进行通信的Socket对象。
例如:
ServerSocket serverSocket = new ServerSocket(9999); //创建服务器通信端口9999 Socket socket = serverSocket.accept(); //接收客户端连接请求
3. Socket类的getInputStream()和getOutputStream()方法:获取输入流和输出流
Socket类是Java中网络编程中使用最为广泛的类之一,用于创建网络连接,getInputStream()和getOutputStream()方法则分别用于获取输入流和输出流,实现对网络连接的数据流读写操作。
例如:
Socket socket = new Socket("127.0.0.1", 9999); //创建客户端Socket连接到本机的9999端口
InputStream inputStream = socket.getInputStream(); //获取输入流
OutputStream outputStream = socket.getOutputStream(); //获取输出流
4. InputStream类的read()方法和OutputStream类的write()方法:读取和写入网络数据
InputStream类和OutputStream类分别表示网络数据的输入流和输出流,read()方法用于从输入流中读取数据,write()方法用于将数据写入输出流中。
例如:
byte[] data = new byte[1024]; int len = inputStream.read(data); //从输入流中读取数据 outputStream.write(data, 0, len); //将数据写入输出流中
5. BufferedReader类的readLine()方法和PrintWriter类的println()方法:读取和写入字符串数据
BufferedReader类和PrintWriter类分别表示网络数据的字符输入流和输出流,readLine()方法用于从字符输入流中读取字符串数据(要求字符串以换行符结束),println()方法用于将字符串数据写入字符输出流中(并自动换行)。
例如:
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); PrintWriter printWriter = new PrintWriter(outputStream, true); String data = bufferedReader.readLine(); //从字符输入流中读取字符串数据 printWriter.println(data); //将字符串数据写入字符输出流中
6. DatagramPacket类的构造方法和send()方法:实现UDP数据报传输
DatagramPacket类用于实现UDP数据报传输。其提供的构造方法可以创建DatagramPacket对象并指定数据、目的地址和端口,send()方法则用于发送该数据报。
例如:
String message = "Hello, UDP!";
InetAddress address = InetAddress.getByName("127.0.0.1");
int port = 9999;
DatagramPacket packet = new DatagramPacket(message.getBytes(), message.length(), address, port); //创建数据报
DatagramSocket socket = new DatagramSocket(); //创建套接字
socket.send(packet); //发送数据报
7. URL类的openConnection()方法:创建URL连接
URL类用于表示具体的URL资源,openConnection()方法则用于建立与该URL的连接,并返回一个URLConnection对象,通过该对象可以进行数据读写和信息获取等操作。
例如:
URL url = new URL("http://www.baidu.com");
URLConnection connection = url.openConnection(); //建立与该URL的连接
InputStream inputStream = connection.getInputStream(); //获取输入流
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String data = bufferedReader.readLine(); //读取数据
8. HttpURLConnection类的setRequestMethod()方法和getResponseCode()方法:实现HTTP协议
HttpURLConnection类是Java中封装了HTTP协议的类,可以用于与Web服务器进行通信。setRequestMethod()方法用于设置HTTP请求的方法(如GET或POST),getResponseCode()方法则用于获取HTTP响应的状态码。
例如:
URL url = new URL("http://www.baidu.com");
HttpURLConnection connection = (HttpURLConnection) url.openConnection(); //建立与该URL的HTTP连接
connection.setRequestMethod("GET"); //设置HTTP请求方法为GET
int responseCode = connection.getResponseCode(); //获取HTTP响应状态码
9. DataInputStream类的readInt()和DataOutputStream类的writeInt()方法:读写基本数据类型
DataInputStream类和DataOutputStream类提供了读写Java中基本数据类型(如int、double等)的方法,可以方便地进行网络数据的传输。
例如:
DataInputStream dataInputStream = new DataInputStream(inputStream); DataOutputStream dataOutputStream = new DataOutputStream(outputStream); int data = dataInputStream.readInt(); //读取一个整数 dataOutputStream.writeInt(data); //写入一个整数
10. ObjectOutputStream类的writeObject()方法和ObjectInputStream类的readObject()方法:读写Java对象
ObjectOutputStream类和ObjectInputStream类提供了读写Java对象的方法,可以实现Java对象的网络传输。
例如:
ObjectOutputStream objectOutputStream = new ObjectOutputStream(outputStream); ObjectInputStream objectInputStream = new ObjectInputStream(inputStream); MyObject myObject = new MyObject(); objectOutputStream.writeObject(myObject); //将一个Java对象写入输出流中 MyObject receivedObject = (MyObject) objectInputStream.readObject(); //从输入流中读取Java对象
