java Socket问题:服务器端等待客户端的请求,但是客户端连上后再关闭,服务器就会出异常,怎么解决?
在服务器端使用InputStreamReaderstream=newInputStreamReader(socket.getInputStream());Buffered...
在服务器端使用
InputStreamReader stream = new InputStreamReader(socket.getInputStream());
BufferedReader reader = new BufferedReader(stream);
while((true){
String in = reader.readLine();
}
来持续读取客户端的发送的消息,但是客户端关闭就出异常了,要怎么解决呢? 展开
InputStreamReader stream = new InputStreamReader(socket.getInputStream());
BufferedReader reader = new BufferedReader(stream);
while((true){
String in = reader.readLine();
}
来持续读取客户端的发送的消息,但是客户端关闭就出异常了,要怎么解决呢? 展开
2个回答
展开全部
两种办法,1)客户端关闭前 先往服务端写一段特定的信息,服务端捕捉后就把该连接关闭。 这样关闭客户端也不会出错。2)用多线程来处理:
1、Server创建 Socket s ; ServerSocket ss 并监听端口 run = true ; while(run) { s = ss.acept();}
2、Client 连接 Server , Server 接受 并启动线程类 ServerThread 处理 客户端的连接 ,然后继续等待下一个客户端的连接。
1、Server创建 Socket s ; ServerSocket ss 并监听端口 run = true ; while(run) { s = ss.acept();}
2、Client 连接 Server , Server 接受 并启动线程类 ServerThread 处理 客户端的连接 ,然后继续等待下一个客户端的连接。
展开全部
现实中,肯定不能保证客户端不去关闭,有异常不要紧,要紧的是去处理异常,而不要因为异常导致整个软件崩溃。
try
{
nputStreamReader stream = new InputStreamReader(socket.getInputStream());
BufferedReader reader = new BufferedReader(stream);
while((true){
String in = reader.readLine();
}
}
catch(IOException e)
{
//客户端断开了
}
软件设计思路,参考一楼的回答.
try
{
nputStreamReader stream = new InputStreamReader(socket.getInputStream());
BufferedReader reader = new BufferedReader(stream);
while((true){
String in = reader.readLine();
}
}
catch(IOException e)
{
//客户端断开了
}
软件设计思路,参考一楼的回答.
更多追问追答
追问
关键是不知道如何去处理这个异常阿,你知道吗?
追答
检查到客户端已断开,接下来你打算怎么处理?
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询