导航:首页 > 编程语言 > socket断开连接java

socket断开连接java

发布时间:2022-06-09 00:55:31

java socket怎么判断断开连接

一个方法sendUrgentData,查看文档后得知它会往输出流发送一个字节的数据,只要对方Socket的SO_OOBINLINE属性没有打开,就会自动舍弃这个字节,而SO_OOBINLINE属性默认情况下就是关闭的
下面一段代码就可以判断远端是否断开了连接:
try{
socket.sendUrgentData(0xFF);
}catch(Exception ex){
reconnect();
}

⑵ java socket怎么断开连接

socket类,有一个senrgentdata方法,查看文档后得知它会往输出流发送一个字节的数据,只要对方socket的so_oobinline属性没有打开,就会自动舍弃这个字节,而so_oobinline属性默认情况下就是关闭的

⑶ Java中socketioclient如何判断是网络断开还是人为断开

可以靠软件查询一下。
再ping一下DNS,能ping通的话整个网络就没问题了若DNS禁ping则用nslookup试试,若可以显示DNS地址及域名则证明网络可达,运行cmd,输入命令,ipconfigall,查看电脑ip的详细信息,输入命令ping检测网络协议,ping本机的ip,检测本地网卡。

⑷ java socket编程 客户端怎么断开socket

你可以把inputStream和outputStream设置为成员变量,然后写一个方法用来关闭流就好了,
又或者通过System.exit(0)关掉当前客户端线程。
当然,你也可以直接通过工具直接把客户端关了。

⑸ java socket 判断是否断开了

首先想到socket类的方法isClosed()、isConnected()、isInputStreamShutdown()、isOutputStreamShutdown()等,但经过试验并查看相关文档,这些方法都是本地端的状态,无法判断远端是否已经断开连接。
然后想到是否可以通过OutputStream发送一段测试数据,如果发送失败就表示远端已经断开连接,类似ping,但是这样会影响到正常的输出数据,远端无法把正常数据和测试数据分开。
最后又回到socket类,发现有一个方法sendUrgentData,查看文档后得知它会往输出流发送一个字节的数据,只要对方Socket的SO_OOBINLINE属性没有打开,就会自动舍弃这个字节,而SO_OOBINLINE属性默认情况下就是关闭的,太好了,正是我需要的!
于是,下面一段代码就可以判断远端是否断开了连接:
try{
socket.sendUrgentData(0xFF);
}catch(Exception ex){
reconnect();
}
用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();
}
}
}
ping的方法有个严重的BUG,就是你只能判断对方是否连接网络,而不能判断客户端是否开启...
我在写聊天室时经常要注意客户端异常退出的问题(比如客户直接调用任务管理器结束程序进程),
其实在通过socket.getoutstream和socket.getinputstream流对客户端发送、接受信息时如果socket没连接上是会抛出异常的,这也就是为什么Java会要求网络编程都要写在try里面,所以只要在catch里面写入客户端退出的处理就行了,没必要专门去想什么方法

⑹ java 怎么处理socket断开'

您好,我来为您解答:
socket.close()
你可以把inputStream和outputStream设置为成员变量,然后写一个方法用来关闭流就好了,
又或者通过System.exit(0)关掉当前客户端线程。
当然,你也可以直接通过工具直接把客户端关了。
希望我的回答对你有帮助。

⑺ java如何关闭socket连接

所以要用长连接啊。客户端端口关闭后需要在close_wait状态等待1-2分钟才会彻底关闭,具体看操作系统的设置,一般默认2分钟。详细TCP状态转换可以参考TCP协议。
如果预期需要频繁传数据,就不要关闭端口,而是维持端口连接,每次都复用这个连接传。如果预期有几分钟以上不会用到连接再关闭。

⑻ Java Socket中服务器断开后,客户端为什么没有抛异常

在客户端退出之后,会出现socket连接中断,此时是会抛出异常,在抛出异常时打印中断的客户端即可。
1. while(Binput.read()!= -1) 这种方法能判断出客户端输入是否为空,客户端断开能跳出死循环,但是得到的数据却从第二个开始了,所以这方法不适宜。
2. 在死循环中加入以下代码:
try {
socket.sendUrgentData(0);
} catch (IOException e) {
done= false; //如果抛出了异常,那么就是断开连接了 跳出无限循环
}

⑼ java socket服务器端断开问题,怎么解决

服务端应该是ServerSocket,然后等待客户端的连接,并开启新线程进行处理,在新线程中怎么出错都不用理,因为吧影响主线程等待新连接。

⑽ socket通信会自动断开连接么

使用socket在as3客户端和java服务器之间通信,发现某些情况下如果客户端长时间不与服务器进行通信(15~30min以上),再次进入由客户端向服务器发送消息,服务器无反应。过一会,连接断开。
这些情况包括:
非调试模式下打开应用,即不是F11打开应用;F11调试应用时没有该问题
java服务器使用的是打包版,即jar文件;使用source服务器没有测试过

说明:java端的socket没有设置各种idle时间。

阅读全文

与socket断开连接java相关的资料

热点内容
为什么程序员拿了股份还要高薪 浏览:946
电脑运行命令里的记录能删吗 浏览:697
linuxwss 浏览:848
一个软件需要登录服务器地址 浏览:923
哪里有解压程序 浏览:299
java静态方法内存 浏览:545
我的世界ec服务器如何带vip 浏览:737
什么是由解析器域名和服务器构成 浏览:414
自动识别电影信息源码 浏览:849
柱筋箍筋加密区怎么算 浏览:48
钢筋中加密15倍是什么意思 浏览:366
esc加密算法 浏览:518
linux运行exe命令 浏览:124
一级建造师管理pdf 浏览:720
如何更改服务器登录账号 浏览:317
看pdf文件软件 浏览:183
android恢复模式 浏览:808
生命令人忧 浏览:597
魔兽搬砖怎么选择服务器 浏览:771
程序员求伯君图片 浏览:827