【java】模拟微信聊天(网络编程)
Java模拟微信聊天(网络编程)
1. 程序概述本程序模拟了微信的基本功能,包括发送消息和接收消息。在程序启动时,用户需要输入自己的微信号和好友的微信号。程序创建两个线程:SendTask(发消息线程)和ReceiveTask(接收消息线程),并启动局域网聊天系统。
2. SendTask类2.1 类描述SendTask类主要负责发送消息到指定好友的微信号。该类继承自Thread类,覆盖了run()方法。
2.2 run()方法```java@Overridepublic void run() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入要发送的消息:");
String message = scanner.nextLine();
// 发送消息到指定好友的微信号 sendToFriend(message, friendId);
}
```
2.3 sendToFriend()方法```javaprivate void sendToFriend(String message, int friendId) {
// 模拟发送消息到服务器 System.out.println("向好友[" + friendId + "]发送消息:" + message);
// 模拟接收回执信息 receiveAck(friendId);
}
```
2.4 receiveAck()方法```javaprivate void receiveAck(int friendId) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入好友[" + friendId + "]的回执信息(Y/N):");
String ack = scanner.nextLine();
if (ack.equalsIgnoreCase("Y")) {
System.out.println("收到好友[" + friendId + "]的回执信息");
} else {
System.out.println("未收到好友[" + friendId + "]的回执信息");
}
}
```
3. ReceiveTask类3.1 类描述ReceiveTask类主要负责接收来自指定好友的微信号。该类继承自Thread类,覆盖了run()方法。
3.2 run()方法```java@Overridepublic void run() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入要接收的消息:");
String message = scanner.nextLine();
// 接收消息并处理 receiveMessage(message, myId);
}
```
3.3 receiveMessage()方法```javaprivate void receiveMessage(String message, int myId) {
Scanner scanner = new Scanner(System.in);
System.out.println("好友[" + friendId + "]发送消息:" + message);
// 模拟处理接收的消息 processReceivedMessage(message, myId);
}
```
3.4 processReceivedMessage()方法```javaprivate void processReceivedMessage(String message, int myId) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入回执信息(Y/N):");
String ack = scanner.nextLine();
if (ack.equalsIgnoreCase("Y")) {
System.out.println("已收到消息");
} else {
System.out.println("未收到消息");
}
}
```
4. 程序启动```javapublic class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入自己的微信号:");
int myId = scanner.nextInt();
System.out.println("请输入好友的微信号:");
int friendId = scanner.nextInt();
SendTask sendTask = new SendTask(myId, friendId);
ReceiveTask receiveTask = new ReceiveTask(myId, friendId);
sendTask.start();
receiveTask.start();
}
}
```
5. 总结本程序模拟了微信的基本功能,包括发送消息和接收消息。在程序启动时,用户需要输入自己的微信号和好友的微信号。程序创建两个线程:SendTask(发消息线程)和ReceiveTask(接收消息线程),并启动局域网聊天系统。
在SendTask类中,run()方法负责发送消息到指定好友的微信号。在sendToFriend()方法中,模拟发送消息到服务器,并接收回执信息。在receiveAck()方法中,处理回执信息。
在ReceiveTask类中,run()方法负责接收来自指定好友的微信号。在receiveMessage()方法中,接收消息并处理。在processReceivedMessage()方法中,处理接收的消息。
程序启动时,用户需要输入自己的微信号和好友的微信号。SendTask和ReceiveTask线程分别启动,并开始发送和接收消息。