关于关机后网络异常的捕获

hibor 2000-07-22 11:39:00
十分奇怪,当客户端非正常关机后(暴力关机)服务器居然没有抛异常请各位帮忙看看
服务器代码:
import java.io.IOException;
import java.net.ServerSocket;
import java.io.InputStream;
import java.net.Socket;
public class TSrv
{
TSrv(int port)
{
try
{
_ServerSocket = new ServerSocket(port);
}
catch(IOException ex)
{
System.out.println(ex);
System.exit(1);
}
}
ServerSocket _ServerSocket;
public void getSrv()
{
while(true)
{
try
{
Socket socket = _ServerSocket.accept();
(new TSrvService(socket)).start();
}
catch(IOException ex)
{
System.out.println(ex);
continue;
}
}
}
public static void main(String[] s)
{
TSrv tsrv = new TSrv(10001);
tsrv.getSrv();
}
}
class TSrvService extends Thread
{
Socket _Socket;
TSrvService(Socket sock)
{
_Socket = sock;
}
public void run()
{
try
{
InputStream in = _Socket.getInputStream();
while(true)
{
try
{
int b = in.read();
System.out.println("Read byte:"+(byte)b);
}
catch(IOException ex)
{
System.out.println(ex);
return;
}
}
}
catch(IOException ex)
{
System.out.println(ex);
System.exit(1);
}
}
}
客户端代码:
import java.net.Socket;
import java.io.OutputStream;
import java.io.IOException;
public class TCli
{
Socket _Socket;
public TCli(String s,int p)
{
try
{
_Socket = new Socket(s,p);
}
catch(IOException ex)
{
System.out.println(ex);
System.exit(1);
}
}
public void getService()
{
try
{
OutputStream out = _Socket.getOutputStream();
while(true)
{
out.write(49);
synchronized(this)
{
try
{
wait(1000);
}
catch(Exception ex)
{;
}
}
}
}
catch(IOException ex)
{
System.out.println(ex);
System.exit(1);
}
}

public static void main(String[] s)
{
String server="98.0.0.200";
if(s.length>0)
{
server=s[0];
}
TCli tcli = new TCli(server,10001);
tcli.getService();
}
}
...全文
125 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tommy Chang 2000-07-24
  • 打赏
  • 举报
回复
想问一句,tcp虽然是面向连接,但是只是逻辑连接,实际上,服务器或客户端任意一方突然断掉(非正常),对于另一方都不会有事件触发的。所以才有超时这种说法,而且也只有当一方在发送或接收数据才会发生。

各大bbs处理非正常断线,都是一刀切,如果超时,就自动回收资源,你个人的经验也没有存盘。

:)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧