第18章_flex_4扩展:socket通信

第18章_flex_4扩展:socket通信

ID:40268115

大小:733.00 KB

页数:14页

时间:2019-07-29

第18章_flex_4扩展:socket通信_第1页
第18章_flex_4扩展:socket通信_第2页
第18章_flex_4扩展:socket通信_第3页
第18章_flex_4扩展:socket通信_第4页
第18章_flex_4扩展:socket通信_第5页
资源描述:

《第18章_flex_4扩展:socket通信》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第18章Flex4扩展:Socket通信18.1Socket简介18.2Flex4中进行Socket通信18.1Socket简介18.1.1Soccket概述20世纪80年代初,美国政府的高级研究工程机构(ARPA)为加利福尼亚大学Berkeley分校提供资金,让他们在UNIX操作系统下实现TCP/IP协议。在这个项目中,研究人员为TCP/IP网络通信开发了一个应用程序接口(API),这个API称为Socket接口。直至今天,Socket接口成为TCP/IP网络最为通用的应用程序接口,也是在Internet上进行应用开发最为通用的应用程序接口。18

2、.1.2Socket工作原理TCP协议是一种面向连接的,可靠的,基于字节流的运输层通信协议,可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。建立起一个TCP连接需要经过“三次握手”。第一次握手:客户端发送一个SYN(synchronizesequencenumbers,同步序列编号)包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认。第二次握手:服务器收到SYN包,必须确认客户的SYN(ack=j+1),同时服务器自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态。

3、第三次握手:客户端收到服务器发送的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。18.1.2Socket工作原理Socket是网络通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。Socket是网络通信过程中端点的抽象表示,包含进行网络通信必需的五种信息,即连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,以及远地进程的协议端口。Socket在计算机中提供一个通信端口,可以通过这个端口与任何一个具有Socket接口的计算机通

4、信。应用程序在网络上传输,接收的信息都通过这个Socket接口实现。在应用开发中,就像使用文件句柄一样,可以对Socket句柄进行读/写操作。Socket正如其英文原意那样,像一个多孔插座。18.1.3建立Socket建立Socket连接至少需要一对套接字,其中一个运行于客户端,称为ClientSocket,另一个运行于服务器端,称为ServerSocket。套接字之间的连接过程分为五个步骤,即服务器监听,客户端请求,连接确认,传递数据和连接关闭。(1)服务器监听:ServerSocket并不定位具体的ClientSocket,而是处于等待连接的状

5、态,实时监控网络状态,等待客户端的连接请求。(2)客户端请求:ClientSocket提出连接请求,要连接的目标是ServerSocket。为此,ClientSocket必须首先描述它要连接的ServerSocket,指出ServerSocket的地址和端口号,然后向ServerSocket提出连接请求。(3)连接确认:当ServerSocket监听到ClientSocket的连接请求时,响应ClientSocket的请求,建立一个新的线程,把ServerSocket的描述发给客户端。(4)传递数据:服务器端启动Socket线程负责处理客户端发送的

6、消息,并及时向客户端发出响应数据。客户端接受响应数据。18.1.3建立Socket(5)连接关闭:理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP连接都将被一直保持下去。Socket建立过程如图所示。18.2Flex4中进行Socket通信18.2.1Socket类在Flex中使用Socket类前需要初始化一个Socket实例,语法格式如下:var对象名:Socket=newSocket([host,port]);参数host指定要连接到的主机名称或IP地址;参数port指定用于建立连接的目标主机上的TCP端口号。创建

7、Socket对象后,可以使用Socket类的以下几个方法。(1)connect():用于将Socket连接到指定的主机和端口。语法格式如下:Socket对象名.connect(host,port);如果已连接上Socket,则现有的连接将首先关闭。(2)flush():对Socket输出缓冲区中积累的所有数据进行刷新。语法格式如下:Socket对象名.flush();(3)close():关闭Socket。语法格式如下:Socket对象名.close();在调用close()方法之后,将无法读取或写入任何数据。18.2.1Socket类(4)rea

8、dBoolean()和writeBoolean():前者从Socket读取一个布尔值;后者向Socket写入一个布尔值。r

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。