套接字 – 使用Java发送零数据TCP / IP数据包

我的目标是发送一个带有空数据字段的TCP数据包,以便用远程机器测试套接字.

我正在使用OutputStream类的write(byte [] b)方法.
我的尝试:

outClient = ClientSocket.getOutputStream();
outClient.write(("").getBytes());

这样做,数据包永远不会显示在线路上.如果“”被“”或任何非零字符串替换,它可以正常工作.

我尝试了jpcap,它与我合作,但没有达到我的目标.
我想扩展OutputStream类,并实现我自己的OutputStream.write方法.但这超出了我的意识.如果有人已经做过这样的事情,请给我建议.

最佳答案
如果您只想快速检测静默删除的连接,可以使用Socket.setKeepAlive(true).此方法要求TCP / IP在没有任何数据包或应用程序编程的情况下处理心跳探测.但是,如果您想要更多地控制心跳的频率,则应该使用应用程序级别的数据包实现心跳.

有关详细信息,请参见此处:http://mindprod.com/jgloss/socket.html#DISCONNECT

转载注明原文:套接字 – 使用Java发送零数据TCP / IP数据包 - 代码日志