用java编写聊天室,一个客户端退出后服务器也退出,怎么回事

用java编写聊天室,一个客户端退出后服务器也退出,怎么回事,第1张

客户端和服务器正在通信,你突然关掉了客户端,他肯定要出异常的。这个异常需要你自己来处理(而不是让他打印堆栈信息)。
try{
//代码块
//这里一般会用一个while(//连接中){
//判断接收的信息是退出的标志,是则按正常退出
//否则,处理信息
//继续读
}
}catch(Exception e){ //exception的类型最好写具体的子类
Systemoutprintln("客户端连接中断"+socket);
}finally{
//在这里关闭这个客户端的socket
socketclose();
}

把服务器看成是文件中转站就行了,从客户端接收消息,再转发到目标客户端。
source
<->
server
<=>
destination

呵呵,楼主您好!要用Java做聊天室说简单也不简单,但是说难呢也不难
说简单点,就是会话跟踪技术(我个人这样理解)要做聊天室,您需要
使用到的工具: tomcat 服务器(因为是免费的,其他也可以哦,呵呵)
Myeclipse(sun公司提供的编写Java程序的工具,别说你不知道哈,
哪样的话我就晕倒了哦,呵呵)
页面框架的设计:indexjsp(聊天室主页面)index_topjsp(聊天室的顶部页面)
usersonlinejsp(在线人数的统计及显示页面) sendMessagejsp(发送信息的页面)
showMessagejsp(显示聊天信息的页面)registerjsp(用户注册的页面)
loginjsp(用户登录页面)
当然,这是最简单的设计方式咯您也可以设计得更好点
页面介绍与功能:
indexjsp 主要是聊天室的主页面由上中下3个框架组成,中间部分在分为
左右2个框架实际上indexjsp就是一个由于5个框架组成的页面
顶部框架:放index_topjsp页面可以设计自己聊天室的特色(比如说:logo)
中间部分的左边框架:showMessagejsp 显示聊天的信息
中间部分的右边框架:usersonlinejsp(在线人数的统计及显示页面)
底部框架:sendMessagejsp 这个发送信息的jsp页面不多说吧
聊天室的框架的设计大楷就是这样子咯
实现聊天:
1编写一个servlet,用户处理的信息(包括验证用户是否登录和聊天信息)。
2用户发送信息之后,将发送的信息存放到Application中(群聊)(放在session中就是私聊)
3显示信息的页面每个XX秒中获取session或者Application中的数据显示出来就OK了
更多的东西还是需要您学习Ajax之后再做,会有不一样的效果哦。祝您成功哟呵呵

聊天程序又叫即时通讯系统
分类两部分:客户端和服务端
客户端:用户聊天的界面
服务端:接收消息并转发到指定用户
其中服务端和客户端用tcp或者udp连接,使用socket编程完成通信。
按着这个思路可以开发出一套聊天程序
客户端常用界面 bs版本的又layim
服务端 openfire或者自己实现

1可以用一个线程阻塞
BufferedReader stdin = new BufferedReader(new InputStreamReader(Systemin));
while(true){
Systemoutprintln(stdinreadLine());
//其它 *** 作,如,编码、发送等 *** 作
}
建议采用多线程,否则无法响应别的事件了。
2同样是多线程,Threadsleep(5000);,很简单的。
3这个可以用时间来标识,比如本地记录最后一次请求时间,请求的时候把这个时间给服务器,服务器返回给定时间之后的记录。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/12890526.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-28
下一篇 2023-05-28

发表评论

登录后才能评论

评论列表(0条)

保存