类似qq聊天程序java源代码
时间: 2023-10-11 21:06:43 浏览: 90
以下是一个简单的基于 Socket 的 Java QQ 聊天程序的代码示例:
Server 端:
```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 QQServer {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(8888); // 监听端口 8888
System.out.println("QQ 服务器已启动,等待客户端连接...");
Socket clientSocket = serverSocket.accept(); // 等待客户端连接
System.out.println("客户端已连接,IP 地址为:" + clientSocket.getInetAddress().getHostAddress());
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); // 读取客户端输入流
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true); // 向客户端输出流写入数据
while (true) {
String message = in.readLine(); // 读取客户端发送的消息
if (message.equals("bye")) { // 如果客户端发送了 "bye",则结束会话
System.out.println("客户端已断开连接。");
break;
}
System.out.println("客户端发送的消息:" + message);
out.println("服务器已收到您的消息:" + message); // 向客户端发送回复消息
}
in.close();
out.close();
clientSocket.close();
serverSocket.close();
}
}
```
Client 端:
```java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
public class QQClient {
public static void main(String[] args) throws IOException {
Socket socket = new Socket("localhost", 8888); // 连接服务器
System.out.println("已连接到 QQ 服务器,IP 地址为:" + socket.getInetAddress().getHostAddress());
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); // 读取服务器输入流
PrintWriter out = new PrintWriter(socket.getOutputStream(), true); // 向服务器输出流写入数据
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); // 读取用户输入流
while (true) {
System.out.print("请输入您要发送的消息(输入 bye 结束会话):");
String message = reader.readLine(); // 读取用户输入的消息
out.println(message); // 向服务器发送消息
if (message.equals("bye")) { // 如果用户输入了 "bye",则结束会话
break;
}
String response = in.readLine(); // 读取服务器回复的消息
System.out.println("服务器回复的消息:" + response);
}
in.close();
out.close();
socket.close();
}
}
```
这个简单的聊天程序仅用于演示 Socket 编程的基本原理,实际上在真正的 QQ 聊天程序中,还需要加入更多的功能和安全机制。
阅读全文