JavaSE教程
Java基础
Java简介
搭建Java开发环境
第一个Java程序
数据类型和变量
运算符和表达式
控制流程语句
数组和字符串
Java方法和方法调用
Java面向对象编程
Java类和对象
Java继承
Java封装
Java多态
Java异常处理
Java集合框架
Java高级特性
Java泛型
Java注解
Java文件I/O和NIO
Java多线程编程
Java网络编程
Java图形用户界面
Java应用开发
Java数据库连接(JDBC)
Java Web应用
-
+
首页
Java网络编程
### 网络通信基础 Java网络编程基于TCP/IP协议,允许Java应用程序与其他计算机上的应用程序进行通信。Java提供了`java.net`包来支持网络通信,包括用于创建和使用网络连接的类。 ### URL和URLConnection `java.net.URL`类表示统一资源定位符(URL),它提供了访问网络资源的方法。`java.net.URLConnection`类是与网络通信的抽象类,表示一个连接到URL对象的连接。 **示例代码**:使用`URL`和`URLConnection`读取网络资源 ```java import java.io.*; import java.net.*; public class URLExample { public static void main(String[] args) { try { URL url = new URL("http://example.com"); URLConnection connection = url.openConnection(); BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream())); String line; while ((line = reader.readLine()) != null) { System.out.println(line); } reader.close(); } catch (IOException e) { e.printStackTrace(); } } } ``` ### Socket编程 Java中的Socket编程分为客户端和服务器两端: - **ServerSocket**:服务器端使用的类,用于监听指定端口上的连接请求。 - **Socket**:客户端和服务器端都使用的类,表示一个套接字,可以用于网络通信。 **服务器端示例代码**: ```java import java.io.*; import java.net.*; public class Server { public static void main(String[] args) { try { ServerSocket serverSocket = new ServerSocket(1234); System.out.println("Server is running and waiting for client connection..."); Socket socket = serverSocket.accept(); // 等待客户端连接 BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); DataOutputStream out = new DataOutputStream(socket.getOutputStream()); String inputLine; while ((inputLine = in.readLine()) != null) { System.out.println("Client: " + inputLine); out.writeBytes("Server: " + inputLine + "\r\n"); } in.close(); out.close(); socket.close(); serverSocket.close(); } catch (IOException e) { e.printStackTrace(); } } } ``` **客户端示例代码**: ```java import java.io.*; import java.net.*; public class Client { public static void main(String[] args) { try { Socket socket = new Socket("localhost", 1234); BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); DataOutputStream out = new DataOutputStream(socket.getOutputStream()); BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in)); String userInput; while ((userInput = stdIn.readLine()) != null) { out.writeBytes(userInput + "\r\n"); String serverResponse = in.readLine(); System.out.println("Server: " + serverResponse); } in.close(); out.close(); socket.close(); } catch (IOException e) { e.printStackTrace(); } } } ``` 在这些示例中,服务器端使用`ServerSocket`在指定端口上监听连接,而客户端使用`Socket`连接到服务器。一旦连接建立,客户端和服务器就可以通过输入输出流进行通信。 Java网络编程为开发网络应用程序提供了强大的支持,无论是简单的HTTP请求还是复杂的客户端-服务器架构,都可以使用Java提供的API来实现。
wwbang
2024年12月25日 16:48
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码