java Socket问题:服务器端等待客户端的请求,但是客户端连上后再关闭,服务器就会出异常,怎么解决?

在服务器端使用InputStreamReaderstream=newInputStreamReader(socket.getInputStream());Buffered... 在服务器端使用

InputStreamReader stream = new InputStreamReader(socket.getInputStream());

BufferedReader reader = new BufferedReader(stream);

while((true){
String in = reader.readLine();
}
来持续读取客户端的发送的消息,但是客户端关闭就出异常了,要怎么解决呢?
展开
 我来答
闫藏0gmd57
2014-12-09 · TA获得超过106个赞
知道答主
回答量:108
采纳率:0%
帮助的人:84.9万
展开全部
两种办法,1)客户端关闭前 先往服务端写一段特定的信息,服务端捕捉后就把该连接关闭。 这样关闭客户端也不会出错。2)用多线程来处理:
1、Server创建 Socket s ; ServerSocket ss 并监听端口 run = true ; while(run) { s = ss.acept();}
2、Client 连接 Server , Server 接受 并启动线程类 ServerThread 处理 客户端的连接 ,然后继续等待下一个客户端的连接。
百度网友7893292
2014-12-09 · TA获得超过844个赞
知道小有建树答主
回答量:1088
采纳率:83%
帮助的人:679万
展开全部
现实中,肯定不能保证客户端不去关闭,有异常不要紧,要紧的是去处理异常,而不要因为异常导致整个软件崩溃。

try
{

nputStreamReader stream = new InputStreamReader(socket.getInputStream());

BufferedReader reader = new BufferedReader(stream);

while((true){
String in = reader.readLine();
}

}
catch(IOException e)
{
//客户端断开了
}

软件设计思路,参考一楼的回答.
更多追问追答
追问
关键是不知道如何去处理这个异常阿,你知道吗?
追答
检查到客户端已断开,接下来你打算怎么处理?
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式