2022年基于TCP协议的网络通信_第1页
2022年基于TCP协议的网络通信_第2页
2022年基于TCP协议的网络通信_第3页
2022年基于TCP协议的网络通信_第4页
2022年基于TCP协议的网络通信_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Android的网络应用基于TCP协议的网络通信TCP/IP通信协议是在通信的两端各建立一个Socket,从而在通信的两端之间形成网络虚拟链路,两端的程序就可以通过虚拟链路进行通信。Java使用Socket对象来代表两端的通信接口,并通过Socket产生IO流来进行网络通信。TCP协议基础使用ServerSocket创建TCP服务器端使用Socket进行通信加入多线程使用ServerSocket创建TCP服务器端ServerSocket包含一个监听来自客户端连接请求的方法。publicSocketaccept():如果接收到一个客户端Socket的连接请求,accept()方法将返回一个与连接客户端Socket对应的Socket(每个TCP连接有两个Socket);否则该方法将一直处于等待状态,线程也被阻塞。为了创建ServerSocket对象,ServerSocket类提供了如下几个构造器:publicServerSocket(intport):用指定的端口port来创建一个ServerSocket。publicServerSocket(intport,intbacklog):增加一个用来改变连接队列长度的参数backlog。publicServerSocket(intport,intbacklog,InetAddresslocalAddress):在机器存在多个IP地址的情况下,允许通过localAddress这个参数来指定将ServerSocket绑定到指定的IP地址。当ServerSocket使用完毕后,应使用ServerSocket的close()方法来关闭该ServerSocket。通常情况下,服务器不应该只接收一个客户端请求,而应该不断地接收来自客户端的所有请求,所以Java程序通常会通过循环不断地调用ServerSocket的accept()方法。使用Socket进行通信利用Socket建立网络连接的步骤:1、服务器监听:服务器端套接字处于等待连接的状态,实时监控网络状态,等待客户端的连接请求。2、客户端请求:指客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。3、连接确认:当服务器端套接字监听到客户端套接字的连接请求时,就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户端确认了此描述,双方就正式建立连接。该程序在运行中需要访问互联网,需要在文件中授权该程序访问网络的权限,如图所示:加入多线程服务器接收到客户端连接之后,服务器向客户端输出一个字符串,而客户端也只是读取服务器的字符串后就退出了。当使用传统BufferedReader的readLine()方法读取数据时,当该方法成功返回之前,线程被阻塞,程序无法继续执行。下面的程序将实现多线程的通信:服务器端:两个类,一个是创建ServerSocket监听的主类MyServer,另一个是负责处理每个Socket通信的ServerThread类。如图的截图是服务器端只负责接收客户端Socket的连接请求,每当客户端Socket连接到该ServerSocket之后,程序将对应Socket加入socketList集合中保存,并为该Socket启动一条线程为该客户端服务,该线程负责处理该Socket所有的通信任务。左图中的服务器端线程类不断读取客户端数据,程序使用readFromClient()方法来读取客户端数据,如果读取数据过程中捕获到IOException异常,则表明该Socket对应的客户端Socket出现了问题。客户端程序是一个Android应用,因此需要创建一个Android项目,这个Android应用的界面中包含两个文本框:一个用于接收输入,另一个用于显示输入信息;界面中还有一个发送按钮,当单击该按钮时,程序向服务器发送输入的信息(如图)。定义一个线程处理Socket所对应的输入流,主线程使用Socket连接到服务器之后,并启动了ClientThread来处理该线程的Socket通信。并定义了一个Handler来处理来自

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论