第8章 Android 通信应用 《Android程序的设计教程》课件.pptVIP

第8章 Android 通信应用 《Android程序的设计教程》课件.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第8章 Android 通信应用 《Android程序的设计教程》课件.ppt

第八章 Android 通信应用;主要内容;8.1.1 Socket简介 8.1.2 Socket通信模型及重要的API 8.1.3 ServerSocket类 8.1.4 Socket连接过程 8.1.5 Android中的Socket通信 ;Socket通常也称作套接字,应用程序通常通过套接字向网络发出请求或者应答网络请求。 Socket通信是在双方建立起连接后就可以直接进行数据的传输,在连接时可实现信息的主动推送,而不需要每次由客户端想服务器发送请求。 Socket是一种低级、原始的通信方式,要编写服务器端代码和客户端代码,自己开端口,自己制定通信协议、验证数据安全和合法性,而且通常还应该是多线程的,开发起来比较繁琐。;网络传输协议分为两种:TCP和UDP TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。TCP协议能为应用程序提供可靠的通信连接,使一台计算机发出的字节流无差错地发往网络上的其他计算机,对可靠性要求高的数据通信系统往往使用TCP协议传输数据。 UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去。UDP适用于一次只传送少量数据、对可靠性要求不高的应用环境。 ;在以上构造方法中,参数port 指定服务器要绑定的端口(服务器要监听的端口),参数backlog指定客户连接请求队列的长度,参数bindAddr指定服务器要绑定的IP地址。 绑定端口:除了第一个不带参数的构造方法以外,其他构造方法都会使服务器与特定端口绑定,该端口由参数port指定。例如,以下代码创建了一个与80 端口绑定的服务器: ServerSocket ServerSocket=new ServerSocket(80); ;如果运行时无法绑定端口会抛出BindException,其原因如下: 端口已经被其他服务器进程占用; 在某些操作系统中,如果没有以超级用户的身份来运行服务器程序,那么操作系统不允许服务器绑定到1~1023之间的端口。 如果把参数port 设为0,表示由操作系统来为服务器分配一个任意可用的端口。由操作系统分配的端口也称为匿名端口。对于多数服务器,会使用明确的端口,而不会使用匿名端口,因为客户程序需要事先知道服务器的端口,才能方便地访问服务器。;设定客户连接请求队列的长度:ServerSocket构造方法的backlog参数用来显式设置连接请求队列的长度,它将覆盖操作系统限定的队列的最大长度。值得注意的是,在以下几种情况中,仍然会采用操作系统限定的队列的最大长度: backlog参数的值大于操作系统限定的队列的最大长度; backlog参数的值小于或等于0; 在ServerSocket构造方法中没有设置backlog参数。 ;设定绑定的IP地址 如果主机只有一个IP 地址,那么默认情况下,服务器程序就与该IP 地址绑定。 如果主机有多个IP地址,则需用ServerSocket的第4 个构造方法ServerSocket(int port, int backlog, InetAddressbindAddr)中的bindAddr参数来显式指定服务器要绑定的IP地址。;默认构造方法的作用 ServerSocket有一个不带参数的默认构造方法。通过该方法创建的ServerSocket不与任何端口绑定,接下来还需要通过bind()方法与特定端口绑定。这个默认构造方法的用途是,允许服务器在绑定到特定端口之前,先设置ServerSocket的一些选项。;默认构造方法的作用 ;2. 获取ServerSocket的信息 ServerSocket的以下两个get方法可分别获得服务器绑定的IP地址,以及绑定的端口: public InetAddressgetInetAddress() public intgetLocalPort() 3. ServerSocket选项 ServerSocket有以下3 个选项。 SO_TIMEOUT:表示等待客户连接的超时时间。 SO_REUSEADDR:表示是否允许重用服务器所绑定的地址。 SO_RCVBUF:表示接收数据的缓冲区的大小。;SO_TIMEOUT选项: 设置该选项:public void setSoTimeout(int timeout) throws SocketException 读取该选项:public intgetSoTimeout () throws IOException 如果SO_TIMEOUT的值为0,表

您可能关注的文档

文档评论(0)

yuzongxu123 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档