Java Socket 客户端端编程266
简介
Socket 编程是网络通信中用于在不同计算机之间建立连接的一种基本技术。在 Java 中,可以使用 Socket API 来创建客户端和服务器端应用程序。本篇文章将重点介绍 Java Socket 客户端端的编程,包括创建客户端套接字、建立连接、发送和接收数据等步骤。
创建客户端套接字
创建客户端套接字涉及以下步骤:```java
import ;
public class SocketClient {
public static void main(String[] args) throws Exception {
// 创建一个客户端套接字,指定要连接的主机和端口
Socket clientSocket = new Socket("localhost", 8080);
}
}
```
建立连接
客户端套接字创建后,需要使用 connect() 方法建立与服务器端的连接。此方法将阻塞直到连接建立或超时。```java
// 建立与服务器的连接
(new InetSocketAddress("localhost", 8080));
```
发送数据
建立连接后,客户端可以使用 OutputStream 发送数据到服务器端。这里使用 PrintWriter 进行更方便的文本数据发送。```java
// 获取OutputStream并用PrintWriter包装
OutputStream outputStream = ();
PrintWriter printWriter = new PrintWriter(outputStream);
// 发送消息到服务器
("Hello from client!");
();
```
接收数据
客户端还可以使用 InputStream 从服务器端接收数据。以下代码展示了如何使用 BufferedReader 接收并打印服务器发送的消息。```java
// 获取InputStream并用BufferedReader包装
InputStream inputStream = ();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
// 接收并打印服务器发送的消息
String message = ();
("Received from server: " + message);
```
释放资源
使用完客户端套接字后,需要通过 close() 方法关闭它以释放资源。```java
// 关闭客户端套接字
();
```
完整代码
以下是完整的 Java Socket 客户端端代码:```java
import ;
import ;
import ;
import ;
import ;
import ;
public class SocketClient {
public static void main(String[] args) throws Exception {
// 创建一个客户端套接字
Socket clientSocket = new Socket("localhost", 8080);
// 建立连接
(new InetSocketAddress("localhost", 8080));
// 发送数据
OutputStream outputStream = ();
PrintWriter printWriter = new PrintWriter(outputStream);
("Hello from client!");
();
// 接收数据
InputStream inputStream = ();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String message = ();
("Received from server: " + message);
// 关闭客户端套接字
();
}
}
```
2024-12-11
下一篇:字节数组在 Java 中的复制
Java方法栈日志的艺术:从错误定位到性能优化的深度指南
https://www.shuihudhg.cn/133725.html
PHP 获取本机端口的全面指南:实践与技巧
https://www.shuihudhg.cn/133724.html
Python内置函数:从核心原理到高级应用,精通Python编程的基石
https://www.shuihudhg.cn/133723.html
Java Stream转数组:从基础到高级,掌握高性能数据转换的艺术
https://www.shuihudhg.cn/133722.html
深入解析:基于Java数组构建简易ATM机系统,从原理到代码实践
https://www.shuihudhg.cn/133721.html
热门文章
Java中数组赋值的全面指南
https://www.shuihudhg.cn/207.html
JavaScript 与 Java:二者有何异同?
https://www.shuihudhg.cn/6764.html
判断 Java 字符串中是否包含特定子字符串
https://www.shuihudhg.cn/3551.html
Java 字符串的切割:分而治之
https://www.shuihudhg.cn/6220.html
Java 输入代码:全面指南
https://www.shuihudhg.cn/1064.html