`

android下socket编程问题:服务器关闭时,客户端发送请求的异常处理

阅读更多
我用socket分别创建了一个服务器和一个客户端。

当服务器程序运行时,客户端和服务器发送接收数据是OK的。

但是,如果服务器程序关闭以后,客户端仍然发送请求的话,会抛出一个IOException。但这个时间间隔很久,要三到四分钟才会抛出这个异常的。刚开始还以为是死机了呢!

我想在客户端做一个处理:如果服务器未开,要弹出一个提示框,然后结束当前程序。
请问怎么实现?

附创建客户端的部分代码:
Socket socket = new Socket("10.13.81.3",5000);

sendMsg(str);//这个是给服务器发送数据的接口
readMsg();//这个是服务器收到后 立即会发送数据给客户端,由客户端在这里接收数据

我就想在创建socket之后,判断是否connect,没有的话就弹出对话框,但是不成功.

解决方法:
//global variables
public Socket socket = null;
private InetSocketAddress isa = null;
private static final String HOST = "10.13.81.26";
private static final String PORT = 5000;
private static final String TIMEOUT = 100;

///connect to server
try
{
   socket = new Socket();
   isa = new InetSocketAddress(HOST,PORT);
   socket.connect(isa,TIMEOUT);
}
catch(IOException e)
{
   e.printStackTrace();
}
finnally
{
   this.disconnectToServer();   
}

///disconnect to server
try
{
   if(socket != null)
   {
   socket.close();
   }
   catch(IOException e)
   {
   e.printStackTrace();
   }
}

之前链接socket直接用:
Socket socket = new Socket("10.13.81.26",5000);
socket.setTimeout(100);
这样,如果出现服务器端未开启时,即使设置了100ms超时时间,也会过很长时间才会捕捉到IOException

现在先定义isa,通过isa跟socket链接 可以解决上面的问题
分享到:
评论

相关推荐

    Android Socket编程客户端服务器端源码

    2. 异常处理:Socket编程中应充分考虑网络异常,如IOException,及时关闭资源以防止内存泄漏。 3. 并发处理:服务器端可能需要处理多个客户端连接,应设计好并发模型,避免单个连接阻塞整个服务。 总的来说,...

    Android环境下Socket编程,服务器端和客户端通讯

    在Android环境中进行Socket编程是构建网络应用程序的关键技术之一,它允许设备之间通过TCP/IP协议进行双向通信。在本文中,我们将深入探讨如何在Android平台上实现服务器端和客户端的Socket通讯,以及如何创建9999...

    计算机网络编程socket客户端与服务器通讯

    - 服务器端的主要功能是接收来自Android客户端的请求,并根据请求处理相应的业务逻辑。 - 作为中间件,服务器端还需负责与MySQL数据库的交互,执行查询或更新操作。 **2. 客户端设计** - 使用Java语言和XML布局...

    Android Socket服务器客户端编程

    总的来说,"Android Socket服务器客户端编程"是一个涵盖网络基础、多线程编程和Android特定挑战的主题。通过`MultiThreadServer`和`MultiThreadClient`这两个项目,开发者可以学习到如何在Android平台上构建可靠且...

    android基于WiFi的socket客户端和服务器端

    当客户端请求到来时,服务器端创建一个新的Socket来处理这个连接,然后通过Socket进行数据交换。在"SocketServer"示例中,会包含一个ServerSocket对象,它监听指定端口,接收到客户端连接请求后,创建Socket实例。 ...

    Android socket通信聊天,客户端+服务端

    在Android平台上进行网络通信时,Socket通信是一种常见且重要的方式,尤其在实现聊天应用时。本文将深入探讨如何在Android中实现基于Socket的客户端和服务端通信,以构建一个简单的聊天应用。 首先,让我们理解...

    android_Socket编程

    Android Socket编程是移动应用开发中实现设备间网络通信的关键技术。Socket,又称套接字,是一种网络编程接口,允许应用程序通过网络与其他设备上的应用程序进行数据交换。本篇将深入探讨Socket的基本概念、通信模型...

    Android中的Socket编程

    在Android应用开发中,Socket编程是实现设备间通信的重要手段,尤其在构建网络服务、实时数据传输等场景中不可或缺。本教程将引导初学者逐步理解并掌握Android中的Socket编程技术。 首先,Socket在计算机网络中被...

    Socket编程简单例子

    在这个“Socket编程简单例子”中,我们将深入理解如何在Android客户端与服务器之间建立连接,发送消息并接收回应。 首先,我们需要了解Socket的基本原理。Socket是网络通信的一种接口,它为两台机器上的应用程序...

    android socket 编程实例

    在Android平台上进行网络通信时,Socket编程是一种常见且重要的技术,它允许设备通过TCP或UDP协议与其他设备或服务器进行双向数据传输。在这个实例中,我们将深入探讨如何在Android客户端和Java服务器端实现Socket...

    Android客户端通过socket与服务器通信(删改版)

    在Android应用开发中,Socket通信是一种常见的网络编程方式,它允许客户端和服务器之间进行双向通信。本篇将详细探讨如何在Android客户端通过Socket与服务器进行数据交换,主要知识点包括: 1. **Socket基础**:...

    Socket发送并接收服务器返回的数据

    服务器端通常会使用ServerSocket监听特定端口,接收到客户端请求后创建Socket连接,并通过Socket的InputStream读取客户端发送的数据,然后通过OutputStream回传响应。服务器端的实现不在本文讨论范围内,但它是整个...

    Android Socket编程实现服务器数据读取

    在Android开发中,Socket编程是实现设备间通信的重要手段,特别是在服务器数据读取的应用场景下。Socket,也称为套接字,是网络编程中的一个概念,它为应用程序提供了在网络中发送和接收数据的接口。本篇文章将深入...

    Android_Socket_客户端和服务器端,支持多张图片同时传送,自定义协议头

    在Android中,我们可以使用java.net.Socket类来创建客户端Socket,而服务器端则使用ServerSocket监听并接受连接请求。 客户端(z_android_client)的实现主要包括以下步骤: 1. 创建Socket实例,指定服务器的IP地址...

    android 网络编程详解代码第7章(android的Socket编程)

    在实际应用中,我们还需要处理异常,比如网络不可用、连接超时、服务器端未响应等问题。此外,Android系统对网络操作有特定的限制,比如必须在主线程外执行网络操作,否则会触发`NetworkOnMainThreadException`。...

    Android基于Socket聊天最终版

    通过Socket编程,Android设备可以作为客户端与服务器进行实时数据交换,实现用户间的聊天功能。 首先,我们来了解一下Socket。Socket是网络通信的基础,它为两台计算机之间的通信提供了一个接口。在Android客户端中...

    android socket客户端与服务器交互案例

    在Android平台上,Socket编程是实现设备间通信的重要技术之一,特别是在需要实时数据交换的应用场景,如聊天应用、在线游戏等。本案例通过"android socket客户端与服务器交互案例",我们将深入探讨如何创建一个简单...

    java做服务器 android做客户端 实现聊天

    一旦连接建立,`accept()`方法会返回一个新的`Socket`对象,用于处理客户端请求。 - **多线程**:由于服务器可能同时处理多个客户端的连接,因此通常需要为每个客户端创建一个新的线程来处理请求,以保证服务的并行...

    android socket通信客户端服务器源代码

    在Android平台上,Socket通信是应用程序之间进行数据交换的重要方式,特别是在客户端-服务器架构的应用中。本文将深入探讨如何使用Android Socket实现客户端与服务器之间的通信,包括基本概念、步骤以及源码解析。 ...

    (缺少数据库)android订票系统android客户端Socket服务器xmlpull.rar

    2. **Socket编程**:了解如何在Android中建立Socket连接,发送和接收数据,实现客户端与服务器的双向通信。 3. **XML处理**:学习使用XMLPullParser或其他XML解析库来解析服务器返回的数据,将其转化为应用程序可...

Global site tag (gtag.js) - Google Analytics