一起Talk Android吧(第三百二十一回:Android中网络通信之TCP客户端)
Posted talk_8
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一起Talk Android吧(第三百二十一回:Android中网络通信之TCP客户端)相关的知识,希望对你有一定的参考价值。
各位看官们,大家好,上一回中咱们说的是android中网络通信之TCP服务端的例子,这一回中咱们说的例子是网络通信之TCP客户端。闲话休提,言归正转。让我们一起Talk Android吧!
客户端初始化
客户端提供了Socket类表示客户端,通过构造方法可以创建客户端对象,也可以理解为客户端进行了初始化操作。该类的构造方法比较多,常用的是以下三种,具体如下
Socket()
Socket(InetAddress address, int port)
Socket(InetAddress address, int port, InetAddress localAddr, int localPort)
在这些构造方法中,常用的是不带参数的构造方法,因为除去没有参数的构造方法外,其它构造方法会自动去向服务器请求连接,如果连接失败则抛出异常;
其它构造方法的含义从方法的参数名称上就能看出来,因为参数主要包含本地主机地址和端口,远程服务器地址和端口,这样都是进行通信和重要属性。注意参数中有一个InetAddress
类,它表示远程服务器的IP地址,它提供了很多静态工厂方法来创建类对象,比如getAllByName.getAllByName("www.baidu.com");
请求连接
void connect(SocketAddress endpoint)
void connect(SocketAddress endpoint, int timeout)
该方法有两个,常用的是connect(SocketAddress endpoint, int timeout) throws IOException
因为它可以设定连接超时的时间值,这样对程序的自定义性高一些;超时的时间值以ms为单位,注意为0时表示永远不会超时。
boolean isConnected()
通过该方法可以获取当前连接是否成功;
关闭连接
boolean isClosed()
该方法获取当前服务器的连接是否关闭。通信结束后需要及时关闭连接,不会浪费资源,在关闭连接前可以使用此方法来判断连接是否关闭。
void close()
该方法用来关闭连接,在关闭连接前需要释放各种资源,以免造成内存泄漏。
这两个方法和服务器端的功能与用法相同,我们再介绍另外两个关闭IO流的方法。
void shutdownInput()
void shutdownOutput()
第一个方法用来关闭连接中的输入流,第二个方法用来关闭连接中的输出流。只关闭流不会关闭已经连接的连接,因此有些地方称其为半关闭。
本章总结
最后让我们对本章回的内容做一个总结:
- 1.Java中使用Socket类表示客户端,通过该类的构造方法可以创建客户端对象;
- 2.可以使用connect()方法发起连接请求,也可以在构造方法中发起连接请求,二者选一就可以,不要重复操作;
- 3.在TCP通信结束前可以只关闭IO流而不关闭连接,使用shutdownInput()和shutdownOutput()方法可以完成此工作;
3.TCP通信结束后需要断开连接,可以使用isClosed()方法和close()方法来完成此工作;
看官们,关于Android中网络通信之TCP客户端的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!
以上是关于一起Talk Android吧(第三百二十一回:Android中网络通信之TCP客户端)的主要内容,如果未能解决你的问题,请参考以下文章
一起Talk Android吧(第三百二十五回:Android中网络通信之TCP通信模型二)
一起Talk Android吧(第三百二十七回:Android中的约束布局)
一起Talk Android吧(第三百二十八回:Android中网络通信之UPD概述)
一起Talk Android吧(第三百二十九回:Android中网络通信之UPD Socket)