117.info
人生若只如初见

用java编写qq聊天程序

下面是一个简单的使用Java编写的QQ聊天程序的代码示例:

import java.io.*;
import java.net.*;
public class QQChatClient {
private Socket socket;
private BufferedReader reader;
private PrintWriter writer;
public QQChatClient(String host, int port) {
try {
// 连接服务器
socket = new Socket(host, port);
System.out.println("成功连接到服务器");
// 创建输入输出流
reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
writer = new PrintWriter(socket.getOutputStream(), true);
// 启动接收消息线程
new Thread(new MessageReceiver()).start();
// 读取用户输入并发送消息
BufferedReader userInputReader = new BufferedReader(new InputStreamReader(System.in));
String userInput;
while ((userInput = userInputReader.readLine()) != null) {
writer.println(userInput);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (socket != null) {
socket.close();
}
if (reader != null) {
reader.close();
}
if (writer != null) {
writer.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
QQChatClient chatClient = new QQChatClient("localhost", 8888);
}
class MessageReceiver implements Runnable {
@Override
public void run() {
try {
String message;
while ((message = reader.readLine()) != null) {
System.out.println("收到消息:" + message);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}

该程序使用Socket连接到指定的服务器和端口,然后创建输入输出流进行消息的发送和接收。在主线程中,通过读取用户的输入并发送到服务器。另外,在单独的线程中,通过不断地读取输入流来接收服务器发送的消息,并在控制台进行输出。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fe85bAzsLBwNUAlM.html

推荐文章

  • java中DrawImage方法不能显示图片怎么解决

    在Java中,使用DrawImage方法绘制图片时,可能出现图片不能显示的情况。以下是一些可能的解决方法: 确保图片路径正确:检查图片路径是否正确,并且确保图片文件...

  • java内存泄漏怎么查看和解决

    Java内存泄漏是指程序中存在无用的对象占用内存,但无法被垃圾回收器回收。以下是查看和解决Java内存泄漏的一些建议: 使用内存分析工具:使用工具如Eclipse Mem...

  • java怎么读取大文件防止内存泄漏

    在Java中,可以使用java.io包中的BufferedReader和FileReader类来读取大文件,同时避免内存泄漏的问题。以下是一个示例代码:
    import java.io.BufferedRead...

  • java中executeQuery()方法的作用是什么

    executeQuery()方法是Java中PreparedStatement和Statement接口的一个方法,用于执行一个SQL查询语句并返回查询结果。它返回一个ResultSet对象,该对象包含查询结...

  • linux串口驱动详解

    Linux串口驱动是用于控制和管理串口设备的软件模块。它提供了一组函数和数据结构,使得应用程序可以通过操作这些函数和数据结构来与串口设备进行通信。
    Lin...

  • linux用命令查看端口映射

    在Linux系统中,可以使用以下命令来查看端口映射: netstat命令:可以用来查看网络连接、路由表和网络接口信息。 netstat -tuln 这个命令会显示当前系统上所有正...

  • linux怎么查看物理磁盘

    在Linux系统中,可以使用以下命令来查看物理磁盘: 使用 fdisk -l 命令查看系统中的物理磁盘和分区信息。 sudo fdisk -l 使用 lsblk 命令查看系统中的物理磁盘和...

  • maven环境变量配置方法

    要配置Maven环境变量,您可以按照以下步骤进行操作: 下载Maven:首先,您需要从Maven官方网站(https://maven.apache.org)下载适用于您操作系统的Maven安装包。...