首页 >Java >java教程 > 正文

java判断socket服务端是否断开连接

原创2020-01-16 09:18:000646

可以使用socket类中的sendUrgentData方法,该方法会往输出流发送一个字节的数据,只要对方Socket的SO_OOBINLINE属性没有打开,就会自动舍弃这个字节,而SO_OOBINLINE属性默认情况下就是关闭的。

于是,下面一段代码就可以判断远端是否断开了连接:

try{
    socket.sendUrgentData(0xFF);
}catch(Exception ex){
    reconnect();
}

(免费学习视频教程分享:java视频教程

用ping实现:

package com.csdn.test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class test {
	static BufferedReader bufferedReader;
	public static void main(String[] args) throws IOException {
		try {
			Process process = Runtime.getRuntime().exec("ping 192.168.1.104");//判断是否连接的IP;
			bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
			String connectionStr = "";
			while ((connectionStr = bufferedReader.readLine()) != null) {
				System.out.println(connectionStr);
			}
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			bufferedReader.close();
		}
	}
}

注意:此方法有一个严重的不足之处,就是你只能判断对方是否连接网络,而不能判断客户端是否开启。

其实在通过socket.getoutstream和socket.getinputstream流对客户端发送、接受信息时如果socket没连接上是会抛出异常的,这也就是为什么Java会要求网络编程都要写在try里面,所以只要在catch里面写入客户端退出的处理就行了。

相关文章教程推荐:java入门教程

以上就是java判断socket服务端是否断开连接的详细内容,更多请关注php中文网其它相关文章!

php中文网最新课程二维码
  • 相关标签:java 判断 socket 服务端 断开 连接
  • 本文原创发布php中文网,转载请注明出处,感谢您的尊重!
  • 相关文章

    相关视频


    网友评论

    文明上网理性发言,请遵守 新闻评论服务协议

    我要评论
  • java中可以使用socket类中的sendUrgentData方法来socket,若Socket的SO_OOBINLINE属性没有打java中会抛出异常。
    golang关闭的方法:1、通过recv()函数的返回值,返回值小于等于0时,socket
    swoole使用心跳机制fd,客户定时发送一个心跳包,告诉器我还活着,器定时检测所有客户列表,看他们最后一个心跳包的时间过长,如果过长,则认为已无心跳,定为死,主动关闭这个
    workerman统计在线人数的方法:定义一个全局变量保存当前进程客户数,使用$connection有新用户,当有新用户时全局变量加一,然后设置一个定时器,在定时器中使用onClose
    php实现域名授权的方法:首先获取不带口号的域名前缀;然后获取授权文件校验;成功授权;最后获取域名并校验结果即可。
    PHP启cURL功能的方法:首先找到并打“php.ini”文件;然后在“php.int”中找到cURL扩展库所在目录;目录下有“php_curl.dll”;最后启cURL扩展并重启apache
    java”实现图片上传至器的方法:首先设置缓冲区大小和临时文件目录,并设置上传文件的大小限制,然后解析请求对象得到上传内容的“List”对象,上传文件,着调用“write()”方法将上传内容写入文件即可

    专题推荐

    推荐视频教程
  • 极客学院Java视频教程极客学院Java视频教程
  • JAVA 初级入门视频教程JAVA 初级入门视频教程
  • 全面解析Java注解全面解析Java注解
  • 最新Java完整视频教程最新Java完整视频教程
  • 视频教程分类