java设计基于流套接字的客户端/服务器通信程序。要求如下: (1)分别编写服务端程序和客户端程序(端口号为1888)。 (2)客户端向服务器发送信息,服务器接收信息并显示。 (3)同时,服务器将信息反馈给客户端,客户端接收信息并显示
时间: 2024-02-07 08:03:30 浏览: 32
好的,我可以为你提供一个基于流套接字的Java客户端/服务器通信程序示例。以下是服务端程序的代码:
```java
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = null;
try {
serverSocket = new ServerSocket(1888);
} catch (IOException e) {
System.err.println("Could not listen on port: 1888.");
System.exit(1);
}
Socket clientSocket = null;
try {
System.out.println("Waiting for client...");
clientSocket = serverSocket.accept();
System.out.println("Client connected: " + clientSocket.getInetAddress().getHostName());
} catch (IOException e) {
System.err.println("Accept failed.");
System.exit(1);
}
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
String inputLine, outputLine;
while ((inputLine = in.readLine()) != null) {
System.out.println("Client: " + inputLine);
outputLine = inputLine;
out.println(outputLine);
}
out.close();
in.close();
stdIn.close();
clientSocket.close();
serverSocket.close();
}
}
```
以下是客户端程序的代码:
```java
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) throws IOException {
Socket socket = null;
PrintWriter out = null;
BufferedReader in = null;
try {
socket = new Socket("localhost", 1888);
out = new PrintWriter(socket.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
} catch (UnknownHostException e) {
System.err.println("Unknown host: localhost");
System.exit(1);
} catch (IOException e) {
System.err.println("Could not connect to localhost:1888");
System.exit(1);
}
BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
String userInput;
while ((userInput = stdIn.readLine()) != null) {
out.println(userInput);
System.out.println("Server: " + in.readLine());
}
out.close();
in.close();
stdIn.close();
socket.close();
}
}
```
这个程序运行后,你可以在客户端输入一些文本,然后将其发送到服务器。服务器将显示客户端发送的信息,并将其发送回客户端。客户端将显示服务器发送的信息。