社区
Java EE
帖子详情
java怎么检测socket连接中断异常
baobaowoaini
2004-08-03 11:27:37
客户端用java语言和服务器(c语言的)建立了TCP连接,用bufferredreader和printwriter作为输入和输出,把服务器用ctrl+c关掉,客户端如何知道该连接断掉,
注:不要用bufferredreader的读方法,还有别的方法吗?
isCloseed和isconnect都监测不出来,printwriter的println也没有异常,
我估计没有别的了,大家给点意见?getOutputStream也不报异常
...全文
936
3
打赏
收藏
java怎么检测socket连接中断异常
客户端用java语言和服务器(c语言的)建立了TCP连接,用bufferredreader和printwriter作为输入和输出,把服务器用ctrl+c关掉,客户端如何知道该连接断掉, 注:不要用bufferredreader的读方法,还有别的方法吗? isCloseed和isconnect都监测不出来,printwriter的println也没有异常, 我估计没有别的了,大家给点意见?getOutputStream也不报异常
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
kazy0514
2005-01-27
打赏
举报
回复
Socket clientSocket = new Socket(host,port);
InputStream is = clientSocket.getInputStream();
byte[] buf = new byte[len];
......//这里做循环守候,省略
is.read(buf);
将上面的这断程序在用try捕捉错误信息,当server端主动断开链接的时候会抛出异常吗??为什么我的不会抛出异常呢??在网上看到有人说只能用write来写捕捉异常来实现判断,究竟怎么样才是切实可行的,下午的时候碰到一个奇怪的问题,就是server端断开后我write一个buffer竟然还可以发送并且没有抛出异常,一定要等到write第二个buffer的时候才抛出异常broken pipe的异常,究竟怎么回事,我快疯了,哪位能救救我!!!
petercheng456
2005-01-27
打赏
举报
回复
我通常是将read封装到一个方法中,需要取串的时候调用这个方法。
无限循环一直读到不是null就返回一个串值,形如:
private String read() {
String tempString = null;
try {
while((tempString = /*string from some stream*/) == null) {
;
}
} catch (SomeException e) {
/* Report Exception */
}
return tempString;
}
这样因为是无限循环不断判断连接状态,所以只要一断开立刻就能知道
当然,开销比较大一点,不过应该可以接受的
kazy0514
2005-01-27
打赏
举报
回复
我也碰到这个问题,有人能解释一下java(不通过write方式)怎么判断连接中断的吗?楼主能否贴一下用bufferredreader方式检测的代码??
JAVA
socket
收发数据,并支持断网自动
连接
在
Java
编程中,
Socket
通信是...总结起来,实现
Java
Socket
收发数据及断网自动
连接
涉及了
Socket
的基本使用、
异常
处理、重连策略、心跳机制和线程管理等多个方面。在实际应用中,需要根据具体需求进行灵活设计和优化。
Java
的
socket
长
连接
实例
接着是`Connection.
java
`,它可能是代表单个
Socket
连接
的类,具有以下组件和方法: 1.
Socket
实例:存储实际的
Socket
对象,用于数据传输。 2. 输入/输出流:通过`
Socket
`获取`InputStream`和`OutputStream`,用于...
C#和
java
之间基于
Socket
的通信
- 在网络编程中,必须处理网络
中断
、
连接
失败等
异常
情况。
Java
和C#的
Socket
操作都可能抛出
异常
,如`IOException`,因此需编写适当的
异常
处理代码。 8. **安全性考虑**: - 如果通信涉及敏感数据,应使用安全套接...
Android的
socket
长
连接
(心跳
检测
)
- 在Android中,我们可以使用`
java
.net.
Socket
`类来创建和管理
Socket
连接
。 2. **Android中创建
Socket
连接
** - 创建
Socket
实例:`
Socket
socket
= new
Socket
("服务器IP", 服务器端口);` - 数据传输:通过`...
Java
Socket
聊天室
在网络编程中,
异常
处理是关键,因为网络
连接
可能会出现各种问题,如
连接
中断
、超时等。
Java
的try-catch-finally语句块用于捕获和处理可能出现的
异常
,确保程序的稳定性和可靠性。 7. **网络协议**: 虽然
Socket
...
Java EE
67,541
社区成员
225,854
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章