我想要一个使用java实现 socket 通信的项目示例
时间: 2024-04-08 10:31:10 浏览: 13
当然!下面是一个使用 Java 实现的简单的 socket 通信示例,其中包括一个服务器端和一个客户端。
服务器端代码:
```java
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) {
try {
// 创建 ServerSocket 对象,并指定端口号
ServerSocket serverSocket = new ServerSocket(8888);
System.out.println("服务器启动,等待客户端连接...");
// 监听客户端的连接请求
Socket socket = serverSocket.accept();
System.out.println("客户端已连接!");
// 获取输入流,用于接收客户端发送的数据
InputStream inputStream = socket.getInputStream();
byte[] buffer = new byte[1024];
int length;
// 读取客户端发送的数据
while ((length = inputStream.read(buffer)) != -1) {
String message = new String(buffer, 0, length);
System.out.println("客户端发送的消息:" + message);
}
// 获取输出流,用于向客户端发送数据
OutputStream outputStream = socket.getOutputStream();
// 向客户端发送响应消息
String response = "Hello, Client!";
outputStream.write(response.getBytes());
// 关闭连接
socket.close();
serverSocket.close();
System.out.println("服务器关闭!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
客户端代码:
```java
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
public class Client {
public static void main(String[] args) {
try {
// 创建 Socket 对象,并指定服务器 IP 地址和端口号
Socket socket = new Socket("127.0.0.1", 8888);
// 获取输出流,用于向服务器发送数据
OutputStream outputStream = socket.getOutputStream();
// 向服务器发送消息
String message = "Hello, Server!";
outputStream.write(message.getBytes());
// 获取输入流,用于接收服务器的响应数据
InputStream inputStream = socket.getInputStream();
byte[] buffer = new byte[1024];
int length;
// 读取服务器的响应数据
while ((length = inputStream.read(buffer)) != -1) {
String response = new String(buffer, 0, length);
System.out.println("服务器的响应:" + response);
}
// 关闭连接
socket.close();
System.out.println("客户端关闭!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
以上代码实现了一个简单的 socket 通信示例。服务器端在指定端口号上监听客户端的连接请求,并接收客户端发送的消息,并向客户端发送响应消息。客户端连接到指定的服务器 IP 地址和端口号,并向服务器发送消息,并接收服务器的响应消息。你可以根据自己的需求进行修改和扩展。