一起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)

一起Talk Android吧(第三百二十三回:Android中网络通信之TCP通信演示)

一起Talk Android吧(第三百二十四回:Android中网络通信之TCP通信模型一)