我用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链接 可以解决上面的问题
分享到:
相关推荐
2. 异常处理:Socket编程中应充分考虑网络异常,如IOException,及时关闭资源以防止内存泄漏。 3. 并发处理:服务器端可能需要处理多个客户端连接,应设计好并发模型,避免单个连接阻塞整个服务。 总的来说,...
在Android环境中进行Socket编程是构建网络应用程序的关键技术之一,它允许设备之间通过TCP/IP协议进行双向通信。在本文中,我们将深入探讨如何在Android平台上实现服务器端和客户端的Socket通讯,以及如何创建9999...
- 服务器端的主要功能是接收来自Android客户端的请求,并根据请求处理相应的业务逻辑。 - 作为中间件,服务器端还需负责与MySQL数据库的交互,执行查询或更新操作。 **2. 客户端设计** - 使用Java语言和XML布局...
总的来说,"Android Socket服务器客户端编程"是一个涵盖网络基础、多线程编程和Android特定挑战的主题。通过`MultiThreadServer`和`MultiThreadClient`这两个项目,开发者可以学习到如何在Android平台上构建可靠且...
当客户端请求到来时,服务器端创建一个新的Socket来处理这个连接,然后通过Socket进行数据交换。在"SocketServer"示例中,会包含一个ServerSocket对象,它监听指定端口,接收到客户端连接请求后,创建Socket实例。 ...
在Android平台上进行网络通信时,Socket通信是一种常见且重要的方式,尤其在实现聊天应用时。本文将深入探讨如何在Android中实现基于Socket的客户端和服务端通信,以构建一个简单的聊天应用。 首先,让我们理解...
Android Socket编程是移动应用开发中实现设备间网络通信的关键技术。Socket,又称套接字,是一种网络编程接口,允许应用程序通过网络与其他设备上的应用程序进行数据交换。本篇将深入探讨Socket的基本概念、通信模型...
在Android应用开发中,Socket编程是实现设备间通信的重要手段,尤其在构建网络服务、实时数据传输等场景中不可或缺。本教程将引导初学者逐步理解并掌握Android中的Socket编程技术。 首先,Socket在计算机网络中被...
在这个“Socket编程简单例子”中,我们将深入理解如何在Android客户端与服务器之间建立连接,发送消息并接收回应。 首先,我们需要了解Socket的基本原理。Socket是网络通信的一种接口,它为两台机器上的应用程序...
在Android平台上进行网络通信时,Socket编程是一种常见且重要的技术,它允许设备通过TCP或UDP协议与其他设备或服务器进行双向数据传输。在这个实例中,我们将深入探讨如何在Android客户端和Java服务器端实现Socket...
在Android应用开发中,Socket通信是一种常见的网络编程方式,它允许客户端和服务器之间进行双向通信。本篇将详细探讨如何在Android客户端通过Socket与服务器进行数据交换,主要知识点包括: 1. **Socket基础**:...
服务器端通常会使用ServerSocket监听特定端口,接收到客户端请求后创建Socket连接,并通过Socket的InputStream读取客户端发送的数据,然后通过OutputStream回传响应。服务器端的实现不在本文讨论范围内,但它是整个...
在Android开发中,Socket编程是实现设备间通信的重要手段,特别是在服务器数据读取的应用场景下。Socket,也称为套接字,是网络编程中的一个概念,它为应用程序提供了在网络中发送和接收数据的接口。本篇文章将深入...
在Android中,我们可以使用java.net.Socket类来创建客户端Socket,而服务器端则使用ServerSocket监听并接受连接请求。 客户端(z_android_client)的实现主要包括以下步骤: 1. 创建Socket实例,指定服务器的IP地址...
在实际应用中,我们还需要处理异常,比如网络不可用、连接超时、服务器端未响应等问题。此外,Android系统对网络操作有特定的限制,比如必须在主线程外执行网络操作,否则会触发`NetworkOnMainThreadException`。...
通过Socket编程,Android设备可以作为客户端与服务器进行实时数据交换,实现用户间的聊天功能。 首先,我们来了解一下Socket。Socket是网络通信的基础,它为两台计算机之间的通信提供了一个接口。在Android客户端中...
在Android平台上,Socket编程是实现设备间通信的重要技术之一,特别是在需要实时数据交换的应用场景,如聊天应用、在线游戏等。本案例通过"android socket客户端与服务器交互案例",我们将深入探讨如何创建一个简单...
一旦连接建立,`accept()`方法会返回一个新的`Socket`对象,用于处理客户端请求。 - **多线程**:由于服务器可能同时处理多个客户端的连接,因此通常需要为每个客户端创建一个新的线程来处理请求,以保证服务的并行...
在Android平台上,Socket通信是应用程序之间进行数据交换的重要方式,特别是在客户端-服务器架构的应用中。本文将深入探讨如何使用Android Socket实现客户端与服务器之间的通信,包括基本概念、步骤以及源码解析。 ...
2. **Socket编程**:了解如何在Android中建立Socket连接,发送和接收数据,实现客户端与服务器的双向通信。 3. **XML处理**:学习使用XMLPullParser或其他XML解析库来解析服务器返回的数据,将其转化为应用程序可...