资源简介
利用java编写的聊天室软件。软件包括服务端和客户端。连接成功后,有用户列表和聊天记录,每个用户都可以随时退出,随时加入,用户列表会做相应改变。聊天记录显示的是最新的聊天记录。当服务端关闭时,客户端就断开连接。服务端和客户端的独立性相对较好。
代码片段和文件信息
package sonyi.client;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
import javax.swing.JOptionPane;
//启动客户端接收线程
public class StartClient {
public StartClient(Socket s) throws UnknownHostException IOException{
new Thread(new ReceiveClient(s)).start();
}
}
//客户端接收线程
class ReceiveClient implements Runnable{
private Socket s;
public ReceiveClient(Socket s) {
this.s = s;
}
public void run() {
try {
//信息接收流
BufferedReader brIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
while(true){
char info = (char)brIn.read();//读取信息流首字符,判断信息类型
String line = brIn.readLine();//读取信息流内容
if(info == ‘1‘){//代表发送的是消息
WindowClient.textMessage.append(line + “\r\n“); //将消息添加到文本域中
//设置消息显示最新一行,也就是滚动条出现在末尾,显示最新一条输入的信息
WindowClient.textMessage.setCaretPosition(WindowClient.textMessage.getText().length());
}
if(info == ‘2‘ || info == ‘3‘){//有新用户加入或退出,2为加入,3为退出
String sub = line.substring(1 line.length()-1);
String[] data = sub.split(““);
WindowClient.user.clearSelection();
WindowClient.user.setListData(data);
}
if(info == ‘4‘){//4代表服务端退出
WindowClient.link.setText(“连接“);
WindowClient.exit.setText(“已退出“);
WindowClient.socket.close();
WindowClient.socket = null;
break;
}
}
} catch (IOException e) {
JOptionPane.showMessageDialog(WindowClient.window “客户端已退出连接“);
}
}
}
//客户端发送信息类
class SendClient {
SendClient(Socket sobject messageString info) throws IOException{
String messages = info + message;
PrintWriter pwOut = new PrintWriter(s.getOutputStream()true);
pwOut.println(messages);
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 299 2014-05-09 09:56 chatSoft\.classpath
文件 384 2014-05-09 09:45 chatSoft\.project
文件 598 2014-05-09 09:56 chatSoft\.settings\org.eclipse.jdt.core.prefs
文件 2239 2014-05-13 09:27 chatSoft\bin\sonyi\client\ReceiveClient.class
文件 1039 2014-05-13 09:27 chatSoft\bin\sonyi\client\SendClient.class
文件 570 2014-05-13 09:27 chatSoft\bin\sonyi\client\StartClient.class
文件 1108 2014-05-13 09:27 chatSoft\bin\sonyi\client\WindowClient$1.class
文件 1486 2014-05-13 09:27 chatSoft\bin\sonyi\client\WindowClient$2.class
文件 2165 2014-05-13 09:27 chatSoft\bin\sonyi\client\WindowClient$3.class
文件 717 2014-05-13 09:27 chatSoft\bin\sonyi\client\WindowClient$4.class
文件 749 2014-05-13 09:27 chatSoft\bin\sonyi\client\WindowClient$5.class
文件 4686 2014-05-13 09:27 chatSoft\bin\sonyi\client\WindowClient.class
文件 2477 2014-05-13 09:27 chatSoft\bin\sonyi\server\ReceiveServer.class
文件 1484 2014-05-13 09:27 chatSoft\bin\sonyi\server\SendServer.class
文件 2425 2014-05-13 09:27 chatSoft\bin\sonyi\server\StartServer.class
文件 1103 2014-05-13 09:27 chatSoft\bin\sonyi\server\WindowServer$1.class
文件 1644 2014-05-13 09:27 chatSoft\bin\sonyi\server\WindowServer$2.class
文件 1524 2014-05-13 09:27 chatSoft\bin\sonyi\server\WindowServer$3.class
文件 717 2014-05-13 09:27 chatSoft\bin\sonyi\server\WindowServer$4.class
文件 749 2014-05-13 09:27 chatSoft\bin\sonyi\server\WindowServer$5.class
文件 4751 2014-05-13 09:27 chatSoft\bin\sonyi\server\WindowServer.class
文件 2004 2014-05-13 09:27 chatSoft\src\sonyi\client\StartClient.java
文件 6265 2014-05-13 09:27 chatSoft\src\sonyi\client\WindowClient.java
文件 3673 2014-05-13 09:27 chatSoft\src\sonyi\server\StartServer.java
文件 6383 2014-05-13 09:27 chatSoft\src\sonyi\server\WindowServer.java
目录 0 2014-05-12 18:04 chatSoft\bin\sonyi\client
目录 0 2014-05-12 17:04 chatSoft\bin\sonyi\server
目录 0 2014-05-13 09:27 chatSoft\src\sonyi\client
目录 0 2014-05-13 09:27 chatSoft\src\sonyi\server
目录 0 2014-05-09 09:56 chatSoft\bin\sonyi
............此处省略8个文件信息
- 上一篇:黑马程序员java57期.txt
- 下一篇:编译原理词法分析器 java版
相关资源
- 编译原理词法分析器 java版
- 黑马程序员java57期.txt
- java车牌识别源码
- 黑马JAVA49.txt
- java大作业完整版 代码加文档 获老师
- 黑马IDEA版本2018Java基础+就业课程
- 2018年4月最新黑马Javaee第297期百度云
- Java高并发精讲云盘
- 2017黑马java基础班+就业班
- java 写的 用优先函数分析 数学表达式
- GuQiu-JAVA做的局域网通讯源码
- 符号串的最左和最右推导
- 编译原理词法分析器实现Java带界面源
- Java播放本地声音,实现系统报警
- javacc实现cmm语法分析
- 在线投票系统源代码JSP+MySql
- 用java语言编写的递归下降语法分析器
- Java OOP阶段小测试1_机试题
- 编译原理综合实习 JavaCC实现 可翻译
- java投票管理系统(源码)
- OA 办公系统Java实现
- 百度地图瓦片工具(JAVA完整工程)
- java是现实的完整的天气预报程序
- java实验源码化工大学java课
- 编译原理 王生原 董渊 书后源代码
- java读取电子称重量数据完整版rxtx包
- CMM 解释器JAVA实现)
- 利用Java编写简单的C语言词法分析器
- Java实现k_means算法进行聚类分析
- Java Swing 小工具界面框架
评论
共有 条评论