端口通信是指通过指定的端口建立连接并进行数据交换的过程。在Java中可以通过Socket类和ServerSocket类来实现端口通信。
//客户端代码 import java.io.*; import java.net.*; public class Client { public static void main(String[] args) { try { Socket socket = new Socket("localhost", 8888); //指定端口号 BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); PrintWriter out = new PrintWriter(new OutputStreamWriter(socket.getOutputStream())); out.println("hello"); out.flush(); String response = in.readLine(); System.out.println("response:" + response); in.close(); out.close(); socket.close(); } catch (IOException e) { e.printStackTrace(); } } } //服务端代码 import java.io.*; import java.net.*; public class Server { public static void main(String[] args) { try { ServerSocket serverSocket = new ServerSocket(8888); //指定端口号 while (true) { Socket socket = serverSocket.accept(); //等待连接 BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); PrintWriter out = new PrintWriter(new OutputStreamWriter(socket.getOutputStream())); String request = in.readLine(); System.out.println("request:" + request); out.println("world"); out.flush(); in.close(); out.close(); socket.close(); } } catch (IOException e) { e.printStackTrace(); } } }
URL通信是指通过URL地址访问网络资源的过程。在Java中可以通过URLConnection类来实现URL通信。
import java.io.*; import java.net.*; public class URLConnectionDemo { public static void main(String[] args) { try { URL url = new URL("http://www.baidu.com"); URLConnection connection = url.openConnection(); connection.connect(); InputStream inputStream = connection.getInputStream(); BufferedReader in = new BufferedReader(new InputStreamReader(inputStream)); String line; while ((line = in.readLine()) != null) { System.out.println(line); } in.close(); } catch (IOException e) { e.printStackTrace(); } } }