基于TCP协议的聊天程序的设计与实现.用Java语言实现
时间: 2023-08-06 14:07:49 浏览: 95
好的,我可以回答这个问题。基于TCP协议的聊天程序可以分为客户端和服务端两部分,下面是一个简单的Java语言实现。
服务端:
```java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class ChatServer {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(8888);
System.out.println("服务器已启动,等待客户端连接...");
Socket socket = serverSocket.accept();
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
String message = in.readLine();
System.out.println("客户端说:" + message);
out.println("你好,客户端");
in.close();
out.close();
socket.close();
serverSocket.close();
}
}
```
客户端:
```java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
public class ChatClient {
public static void main(String[] args) throws IOException {
Socket socket = new Socket("localhost", 8888);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
out.println("你好,服务器");
String message = in.readLine();
System.out.println("服务器说:" + message);
in.close();
out.close();
socket.close();
}
}
```
在这个简单的聊天程序中,服务端启动后等待客户端连接,客户端连接后向服务端发送消息,服务端接收到消息后输出,然后向客户端发送消息。这个程序只能实现简单的单向通信,如果想要实现双向聊天,需要在客户端和服务端中分别启动读取和发送消息的线程。
阅读全文