Java编写基于TCP协议的程序。编写一个服务端程序,该程序可接收多个客户端发送的请求。编写一个客户端程序,该程序可向服务器发送一些文本消息。服务器端程序需要使用多线程、 }
时间: 2024-05-11 18:18:00 浏览: 89
采用java编写的TCP/IP服务器端程序
5星 · 资源好评率100%
好的,下面是一个简单的Java基于TCP协议的多线程服务器端程序和客户端程序的代码示例:
服务端代码:
```java
import java.io.*;
import java.net.*;
public class TCPServer {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(9999);
System.out.println("服务器已启动");
while (true) {
Socket socket = serverSocket.accept();
System.out.println("客户端" + socket.getInetAddress().getHostAddress() + "已连接");
new ServerThread(socket).start();
}
}
static class ServerThread extends Thread {
private Socket socket;
public ServerThread(Socket socket) {
this.socket = socket;
}
@Override
public void run() {
try {
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
System.out.println("收到来自客户端" + socket.getInetAddress().getHostAddress() + "的消息:" + line);
}
in.close();
socket.close();
System.out.println("客户端" + socket.getInetAddress().getHostAddress() + "已断开连接");
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
```
客户端代码:
```java
import java.io.*;
import java.net.*;
public class TCPClient {
public static void main(String[] args) throws IOException {
Socket socket = new Socket("127.0.0.1", 9999);
System.out.println("已连接到服务器");
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
String line;
while ((line = reader.readLine()) != null) {
out.println(line);
}
reader.close();
out.close();
socket.close();
}
}
```
在服务端代码中,我们使用了ServerSocket类来监听指定端口上的客户端连接请求。当客户端连接后,我们为每个客户端创建一个新的线程来处理其请求。在客户端线程中,我们使用BufferedReader类来读取客户端发送的消息。
在客户端代码中,我们使用Socket类来连接服务器,并使用PrintWriter类向服务器发送消息。在这个例子中,我们使用了标准输入流来从控制台读取用户输入的消息。
这只是一个简单的示例代码,实际上还需要考虑一些异常情况的处理,例如连接断开、网络异常等等。
阅读全文