Java实现MyQQ聊天程序设计

需积分: 10 2 下载量 91 浏览量 更新于2024-09-10 收藏 54KB DOC 举报
"MyQQ聊天程序设计是一个基于Java的项目,旨在实现一个简单的即时通讯程序,类似于QQ。这个程序包含服务端(GetMessage.java)和客户端(SendMessage.java),用于用户之间的文字聊天功能。服务端通过ServerSocket监听特定端口,接收客户端发送的消息,并显示在聊天窗口。客户端则负责发送用户输入的文字到服务器,并同样更新聊天视图。" 在GetMessage.java中,服务端的核心知识点包括: 1. **网络编程基础**:使用`java.net`包中的`ServerSocket`类创建服务器,监听特定端口等待客户端连接。`ServerSocket so = new ServerSocket(i);`表示服务器在指定端口号i上启动。 2. **Socket通信**:当有客户端连接时,`so.accept()`会阻塞直到连接建立,返回一个`Socket`对象。`Sockets = so.accept();`用于获取与客户端的连接。 3. **输入输出流**:通过`InputStreamReader`和`BufferedReader`读取客户端发送的数据。`InputStreamReader i = new InputStreamReader(s.getInputStream());`和`BufferedReader b = new BufferedReader(i);`组合用于从Socket的输入流中逐行读取数据。 4. **文本处理**:接收到消息后,将"对方说"与接收到的内容连接起来,然后追加到聊天文本区域`text.append("对方说" + v + "\n");`,展示给用户。 5. **异常处理**:当出现IO异常时,捕获并处理,例如当客户端断开连接时,更新聊天视图显示"对方下线了..."。 在SendMessage.java中,客户端的主要知识点包括: 1. **网络编程**:客户端使用`Socket`类与服务器建立连接,`Socket socket = new Socket(serverIP, port);`,其中serverIP是服务器的IP地址,port是服务器的监听端口。 2. **输入输出流**:客户端也需要`InputStreamReader`和`PrintStream`来读写数据。`InputStreamReader input = new InputStreamReader(socket.getInputStream());`用于读取服务器响应,`PrintStream out = new PrintStream(socket.getOutputStream());`用于向服务器发送消息。 3. **用户界面交互**:客户端可能包含了`JTextField`、`JLabel`和`JTextArea`等Swing组件,用于用户输入、提示信息显示和聊天记录展示。 4. **事件监听**:客户端需要监听用户的输入事件,当用户在`JTextField`中输入文字并按下发送按钮时,将文本内容通过`out.println(inputText);`发送到服务器。 5. **异常处理**:客户端也需要处理可能出现的网络异常,如`UnknownHostException`和`IOException`,确保程序在遇到问题时能适当反馈。 这两个类展示了基本的客户端-服务器通信模式,利用Java的网络编程能力实现了一个简单的聊天应用。虽然这个设计没有考虑到多线程处理、安全性和复杂的消息格式,但它是理解TCP/IP通信和Java GUI编程的一个基础示例。