`

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与服务器通信的方法

    本文实例讲述了Android编程之客户端通过socket与服务器通信的方法。分享给大家供大家参考,具体如下: 下面是一个demo,Android客户端通过socket与服务器通信。 由于Android里面可以完全使用java.io.*包和java.net.*...

    Socket android

    而Socket通信则是在双方建立起连接后就可以直接进行数据的传输,在连接时可实现信息的主动推送,而不需要每次由客户端想服务器发送请求。 那么,什么是socket?Socket又称套接字,在程序内部提供了与外界通信的端口...

    网络编程课程设计报告-Android-Socket-聊天室.doc

    (2)连接(Android 创建Socket会自动连接) (3)与服务器端进行通信 (4)关闭套接字 四、系统流程图 五、系统设计 本课程设计按照系统的具体功能要求,首先应用Socket编程创建客户端和服务器端, 每多个客户端服务器端...

    EasySocket:一个轻量级的Android端Socket框架,可快速实现客户端和服务端之间的TCP长连接通讯,兼容于各种消息协议,框架的特色之一是可以实现Socket的消息回调功能

    传统的Socket框架客户端发出一个请求信息,然后服务器返回一个应答信息,但是我们无法识别这个应答信息是对应哪个请求的,而EasySocket实现了将每个请求跟应答的一一对接,从而在Socket层面实现了请求回调功能 ...

    Android中Socket的应用分析

    本文实例分析了Android中Socket的应用。分享给大家供大家参考,具体如下: Android 提供的常用的网络编程包括针对TCP/IP协议的Socket通信。...客户端,使用Socket对网络上某一个服务器的某一个端口发出连接请求,一

    JAVA五子棋手机网络对战游戏的设计与实现.rar

    服务器:处理客户端请求、管理游戏状态、匹配玩家等。 数据库:存储玩家账号信息、游戏记录、排行榜等数据。 技术实现: 客户端:使用Android Studio进行界面设计和开发,利用Socket建立与服务器的TCP连接,实现...

    微软开源的SignalR .Net客户端实现ASP.NET SignalR.zip

    Web 功能是指这样一种功能:当所连接的客户端变得可用时服务器代码可以立即向其推送内容,而不是让服务器等待客户端请求新的数据。 SignalR类似与JavaScript实时框架,如Socket.IO。SignalR能够完成客户端向服务器...

    Linux高性能服务器编程

    聊天室程序 9.6.1 客户端 9.6.2 服务器 9.7 IO复用的高级应用三:同时处理TCP和UDP服务 9.8 超级服务xinetd 9.8.1 xinetd配置文件 9.8.2 xinetd工作流程 第10章 信号 10.1 Linux信号概述 10.1.1 发送信号 ...

    Android实验七.doc

    (2)客户端发起请求 Socket s=new Socket("192.168.1.102", 3080); 3. 获得输入流/输出流,进行数据传送和接收 s.getInputStream() s.getOutputStream() (4)关闭输入流/输出流和套接字 os.close(); s.close(); ...

    cpu循环读卡HK947

    安卓手持机端作为套接字技术中的Socket Client(客户端)则需主动链接ServerSocket并请求与本设备相关的信息数据。 上传:指手持机给PC发送文件,PC端接收文件的过程。 下发:指PC端向手持机发送文件,手持机端接收...

    P2P聊天和文件共享应用程序使用套接字Android:Android中使用套接字编程的对等聊天和文件共享应用程序

    描述在Android中使用Socket编程进行点对点聊天和文件共享的应用程序基本特点: 这是一个点对点聊天和文件共享应用程序,我们决定在每一端同时创建服务器和客户端功能。 在应用程序中,您的IP地址中有一部分可供用户...

    疯狂Android讲义源码

     第2章 Android应用的界面编程 35  2.1 界面编程与视图(View)组件 36  2.1.1 视图组件与容器组件 36  2.1.2 使用XML布局文件控制UI  界面 40  2.1.3 在代码中控制UI界面 41  2.1.4 使用XML布局文件和Java ...

    疯狂Android讲义.part2

    第1章 Android应用与开发环境 1 1.1 Android的发展和历史 2 1.1.1 Android的发展和简介 2 1.1.2 Android平台架构及特性 3 1.2 搭建Android开发环境 5 1.2.1 下载和安装Android SDK 5 1.2.2 安装Eclipse和ADT插件 7 ...

    疯狂Android讲义.part1

    第1章 Android应用与开发环境 1 1.1 Android的发展和历史 2 1.1.1 Android的发展和简介 2 1.1.2 Android平台架构及特性 3 1.2 搭建Android开发环境 5 1.2.1 下载和安装Android SDK 5 1.2.2 安装Eclipse和ADT插件 7 ...

    JAVA上百实例源码以及开源项目

     当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。  QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新...

    JAVA上百实例源码以及开源项目源代码

    Java编写的山寨QQ,多人聊天+用户在线,程序分服务端和客户端,典型C/S结构, 当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。...

    史上最好传智播客就业班.net培训教程60G 不下会后悔

    在ASP.Net课程的一开始,不是直接教学员怎么拖ASP.Net控件进行快速开发,而是通过ashx的模式开发原始的动态网站,让学员明白“请求—处理—响应模型”、“Http协议、Http无状态”、“c#代码渲染生成浏览器端...

Global site tag (gtag.js) - Google Analytics