使用socket编写一个客户端--服务器的代码,包括客户端代码和服务器代码两部分,用java编写
时间: 2024-05-15 17:19:44 浏览: 16
客户端代码:
```java
import java.io.*;
import java.net.*;
public class Client {
private Socket socket;
private BufferedReader reader;
private PrintWriter writer;
public Client(String host, int port) {
try {
// 创建Socket对象
socket = new Socket(host, port);
// 获取输入输出流
reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
writer = new PrintWriter(socket.getOutputStream(), true);
} catch (IOException e) {
e.printStackTrace();
}
}
public void start() {
try {
// 发送消息
writer.println("Hello Server");
// 接收消息
String response = reader.readLine();
System.out.println("Server response: " + response);
// 关闭连接
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
Client client = new Client("localhost", 8888);
client.start();
}
}
```
服务器代码:
```java
import java.io.*;
import java.net.*;
public class Server {
private ServerSocket serverSocket;
public Server(int port) {
try {
// 创建ServerSocket对象
serverSocket = new ServerSocket(port);
} catch (IOException e) {
e.printStackTrace();
}
}
public void start() {
try {
System.out.println("Server started.");
// 循环监听客户端连接
while (true) {
// 等待客户端连接
Socket socket = serverSocket.accept();
System.out.println("Client connected: " + socket.getInetAddress().getHostAddress());
// 获取输入输出流
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter writer = new PrintWriter(socket.getOutputStream(), true);
// 接收消息
String request = reader.readLine();
System.out.println("Client request: " + request);
// 发送消息
writer.println("Hello Client");
// 关闭连接
socket.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
Server server = new Server(8888);
server.start();
}
}
```