-
大小: 5.71 KB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2024-08-29
- 語言: Java
- 標簽:
資源簡介
采用TCP SOCKET技術編寫C/S模式的聊天室軟件,聊天室具有群聊、私聊等功能,支持多個連接,支持消息邊界,
代碼片段和文件信息
import?java.awt.BorderLayout;
import?java.awt.Button;
import?java.awt.Color;
import?java.awt.FlowLayout;
import?java.awt.frame;
import?java.awt.List;
import?java.awt.Panel;
import?java.awt.TextArea;
import?java.awt.TextField;
import?java.awt.event.ActionEvent;
import?java.awt.event.ActionListener;
import?java.awt.event.KeyAdapter;
import?java.awt.event.KeyEvent;
import?java.awt.event.WindowAdapter;
import?java.awt.event.WindowEvent;
import?java.io.DataInputStream;
import?java.io.DataOutputStream;
import?java.io.IOException;
import?java.net.Socket;
import?java.net.UnknownHostException;
public?class?ChatClient?extends?frame?{
????private?TextArea?msgShow;?//顯示聊天信息文本框
????private?List?onlinePeople;////顯示在線用戶信息
????private?TextField?msgContent;//聊天輸入
????private?Button?btnPost;
????private?String?address?=?“127.0.0.1“;
????public?static?final?int?PORT?=?8842;
????private?DataInputStream?dis?=?null;
????private?DataOutputStream?dos?=?null;
????private?Socket?s?=?null;
????private?String?nickname;
????
????//用戶界面
????ChatClient()?{
????????this.setBounds(300?100?500?300);
????????Panel?p?=?new?Panel(new?BorderLayout());
????????Panel?pTop?=?new?Panel(new?BorderLayout());
????????Panel?pBottom?=?new?Panel(new?FlowLayout());
????????msgShow?=?new?TextArea(14?50);
????????onlinePeople?=?new?List(15?false);
????????pTop.add(msgShow?BorderLayout.WEST);
????????pTop.add(onlinePeople?BorderLayout.EAST);
????????msgContent?=?new?TextField(60);
????????btnPost?=?new?Button(“發(fā)送“);
????????msgContent.addKeyListener(new?KeyMonitor());
????????btnPost.addActionListener(new?ActionMonitor());
????????pBottom.add(msgContent);
????????pBottom.add(btnPost);
????????p.add(pTop?BorderLayout.NORTH);
????????p.add(pBottom?BorderLayout.SOUTH);
????????this.add(p);
????????this.setVisible(true);
????????this.addWindowListener(new?WindowAdapter()?{?//事件處理
????????????public?void?windowClosing(WindowEvent?e)?{
????????????????sendMsg(nickname?+?“?離開“);
????????????????setVisible(false);
????????????????System.exit(0);
????????????}
????????});
????}
????
????class?ActionMonitor?implements?ActionListener?{
????????public?void?actionPerformed(ActionEvent?arg0)?{
????????????post();
????????}
????????
????}
????
????class?KeyMonitor?extends?KeyAdapter?{
????????public?void?keyPressed(KeyEvent?e)?{
????????????if?(e.getKeyCode()?==?KeyEvent.VK_ENTER)?{
????????????????post();
????????????}
????????}
????}
????//客戶端發(fā)送消息并在自己的文本框上顯示
????public?void?post()?{
????????String?content?=?msgContent.getText().trim();//獲取發(fā)送信息內(nèi)容
????????String?postPeople?=?onlinePeople.getSelectedItem();//獲取被發(fā)送的用戶
????????String?postMsg?=?nickname?+?“!@~‘“?+?postPeople?+?“!@~‘“?+?content;//整合發(fā)送出去的數(shù)據(jù)
????????if?(postPeople?==?null?||?“null“.equals(postPeople)?||?“所有人“.equals(postPeople))?{//判斷發(fā)送用戶為私聊或群發(fā)
????????????this.msgShow.setText(msgShow.getText()?+?nickname?+?“群發(fā):“?+?content?+?“\n“);
????????}?else?{
???
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????5491??2008-12-08?21:05??java聊天程序\ChatClient.java
?????文件???????2689??2008-12-08?20:44??java聊天程序\ChatServer.java
?????文件???????5350??2008-12-08?22:45??java聊天程序\Client.java
?????文件???????1781??2008-12-08?21:07??java聊天程序\Login.java
?????文件???????2081??2008-12-08?21:13??java聊天程序\Receive.java
?????目錄??????????0??2008-12-16?20:36??java聊天程序
-----------?---------??----------?-----??----
????????????????17392????????????????????6
- 上一篇:《java程序設計》書附源代碼
- 下一篇:用Java編寫的掃雷游戲源代碼
評論
共有 條評論