`
samyou
  • 浏览: 108002 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java socket判断客户端是否断开连接

    博客分类:
  • java
阅读更多
ServerSocket serverSocket = new ServerSocket(9952);
Socket socket = serverSocket.accept();
int k=-1;
我发现接收数据时不能用
while(socket.isConnected()){
fileOutputStream.write(inputStream.read());
}
我在客户端即使断开连接,socket.isConnected()依然是true。
应该用
while((k=inputStream.read())!=-1){
fileOutputStream.write(k);
}
当客户端断开时,k=-1,那就是说inputStream.read()其实也是阻塞的,如果inputstream没有断开,它会阻塞直到有数据为止。
socket如果需要同时写入写出,则需要为input和output各开一个线程
分享到:
评论
1 楼 cuisuqiang 2012-11-09  
如果是主动切断会报错,不过如果是网线掉了,则不会报错!

相关推荐

    QT TCP服务端如何判断客户端已断开连接 - 北冥有鱼的博客 - CSDN博客1

    QT提供了丰富的网络编程接口,其中包括`QAbstractSocket`类,该类包含了判断客户端断开连接的方法。 首先,`QAbstractSocket`枚举类型中的`SocketError`定义了各种可能的套接字错误。当客户端主动断开连接时,...

    java socket客户端断线重连

    java socket client 断线重连的简单实现 有什么意见可以提哦

    Socket判断远端网络是否断开,简单例子

    - **网络监听**:使用`ConnectivityManager`监控网络状态变化,但这种方法只能检测到设备的网络连接是否可用,不能判断特定Socket连接的状态。 以下是一个简单的示例代码,展示如何使用心跳机制检测网络断开: ``...

    java socket长连接客户端服务端(标准实例)

    本案例实现了基于TCP协议的Socket长连接,即客户端和服务端建立连接后,保持连接状态,进行多次数据交互而无需频繁建立和断开连接的过程。 #### 二、长连接的优点 1. **减少连接建立的时间**:由于TCP连接的建立...

    Socket服务器端断开后重新打开,客户端将自动完成链接

    1. 定时检测:客户端在与服务器的通信过程中,定期发送心跳包,以确认连接是否仍然有效。如果服务器未在预设时间内响应,客户端可以认为连接已断开并开始尝试重新连接。 2. 异常处理:当客户端尝试发送或接收数据时...

    JAVA socket收发数据,并支持断网自动连接

    - 为了检测连接是否有效,可以引入心跳机制。客户端定时发送小量数据到服务器,服务器回应,以此确认连接状态。 - 如果连续几次心跳包没有收到响应,可以认为连接已断开,启动重连。 6. **线程管理** - 通常,...

    Java实现Socket长连接和短连接

    在Java编程中,Socket是网络通信的基础,它允许两个应用程序通过TCP/IP协议进行数据传输。Socket连接分为两种类型:长连接和短连接。这两种连接方式各有特点,适用于不同的应用场景。 **1. 短连接(Short ...

    java编写socket服务端和客户端给予cmpp3.0

    Java 编写基于 CMPP3.0 的 Socket 服务端和客户端是移动通讯领域中常见的技术实践,主要用于实现与移动运营商的短信网关进行数据交互。CMPP(China Mobile Short Message Peer-to-Peer)是中国移动制定的一种短消息...

    java写的socket通信客户端

    Java编写的Socket通信客户端是网络编程中的一个基础组件,...综上所述,这个Java编写的Socket客户端实现了基本的网络通信功能,并通过断线重连机制提高了其稳定性。理解并掌握这些知识点对于进行Java网络编程至关重要。

    java socket 长连接实例

    "服务器端支持客户端的掉线检测"是一项关键特性,它允许服务器检测并处理客户端意外断开连接的情况。通常,可以通过设置超时机制,如果在一段时间内客户端没有发送任何数据,服务器可以认为客户端已经掉线。另一种...

    如何判断SOCKET通信中,客户端在10s内未发送数据或者未收到服务器发送的数据,自动断开.doc

    在本文档中,我们将探讨一种机制,即如何在SOCKET长连接通信中判断客户端在一定时间内(例如10秒)是否收到来自服务器的数据或向服务器发送数据,并在此基础上实现自动断开连接的功能。此外,本文还将根据提供的部分...

    Java socket聊天软件 服务器和用户分开,可断开重连恢复聊天

    本项目"Java socket聊天软件 服务器和用户分开,可断开重连恢复聊天"是一个典型的实例,它展示了如何使用Java Socket API创建一个支持多人聊天、能够处理断线并自动重连的系统。下面我们将深入探讨其中涉及的关键...

    java客户端socket与mina服务端通信

    - Java Socket中,可以通过关闭输入/输出流而不是Socket本身来保持连接,直到需要完全断开连接时再关闭Socket。 5. **异常处理**: - 无论是Socket还是Mina,都需要处理可能出现的网络异常,如连接中断、数据传输...

    基于Java的Socket客户端实现,可以直接用于Android平台

    在这个“基于Java的Socket客户端实现,可以直接用于Android平台”的项目中,我们将深入探讨相关的知识点。 首先,Java Socket API是Java标准库的一部分,提供了在网络层面上进行数据交换的能力。Socket是TCP/IP协议...

    通过java socket实现屏幕网络监控

    1. Java Socket编程基础:包括ServerSocket和Socket的使用,以及连接建立和断开。 2. 图像处理:如何捕获屏幕、编码和解码图像,以及选择合适的编码格式。 3. 多线程编程:在捕获屏幕和发送数据之间保持良好的并发性...

    Java编程Socket实现多个客户端连接同一个服务端代码

    3. Socket编程模型:Socket编程模型是指客户端和服务端之间的通信模型,包括连接、数据传输和断开连接三个阶段。 4. 多线程编程:多线程编程是Java中的一种编程方式,用于实现多个线程之间的并发执行。 5. ...

    基于JavaSocket多客户端并发通信聊天程序的设计与实现

    客户端断开连接后,对应的子线程会释放Socket资源。 4. **多客户端聊天程序设计** 聊天程序通常分为服务器端和客户端两部分。 - **服务器端程序** - **启动服务器**:通过ServerSocket监听指定端口,接受客户端...

    JAVA聊天 服务端 客户端

    心跳机制可以用来检测网络连接是否断开。 4. **数据传输与安全**: - **序列化与反序列化**:Java的序列化机制可以将对象转化为字节流,方便在网络间传输。在聊天应用中,消息可能需要被序列化后再发送。 - **...

    基于Java的FTP客户端源代码

    Java提供了一系列的API,如`java.net.Socket`和`java.io`包中的类,使得开发FTP客户端成为可能。在本文中,我们将深入探讨如何使用Java实现FTP客户端,并通过实际的代码示例来解释关键概念。 首先,理解FTP的工作...

Global site tag (gtag.js) - Google Analytics