apr

类 套接字

系统.对象
    └apr.套接字


公开 类 套接字 <基类型 = 系统.对象

本类提供了操作套接字的方法。


数据成员摘要
公开 静态 常量 整数

队列长度 = 2147483647 

    系统默认的队列长度。

公开 静态 常量 整数

再使用 = 1 

    针对“发送文件”方法、WIN32平台。指定该标志可重用套接字对象,发送方法完成数据传输就会在传输层断开连接,然后该套接字对象就可以被重新使用,这样可减少反复创建套接字。

方法摘要
公开 apr.返回码

创建套接字(整数 通信域, 整数 套接字类型, 整数 协议, apr.内存池 内存池对象) 

公开 apr.返回码

停止(整数 关闭选项值) 

    套接字的通信是双向的,本方法禁止套接字上的读或写,与“关闭”不同,“关闭”方法只有在最后一个引用被关闭时才释放网络端点,而“停止”方法使一个套接字处于不活动状态。

公开 apr.返回码

关闭() 

    本方法只有在最后一个活动的引用被关闭时才释放网络端点,如果复制一个套接字(例如“文件操作”类的“复制文件操作对象”),那么直到关闭了最后一个引用它的套接字描述符之后才会释放网络端点。

公开 apr.返回码

绑定(apr.套接字地址 套接字地址对象) 

    将套接字地址对象绑定到套接字对象。

公开 apr.返回码

监听(整数 队列长度 = 2147483647) 

    等待客户端的连接请求。

公开 apr.套接字

接受(apr.内存池 内存池对象) 

    接受客户端的连接请求,本方法设置返回码,成功返回套接字对象(该套接字对象连接到调用“连接”的客户端),失败返回空对象。

公开 apr.返回码

连接(apr.套接字地址 套接字地址对象) 

    连接服务器。如果是面向连接的网络服务(如枚举:“套接字类型”的“流式套接字”、“定序分组套接字”),在交换数据之前需要与服务端建立连接。

公开 静态 文本

取计算机名(apr.内存池 内存池对象) 

    本方法设置返回码,成功返回当前计算机名,失败返回空文本。

公开 整数

发送(字节集 内容) 

    本方法设置返回码,成功返回己发送的长度,失败返回-1。

公开 整数

发送块数据(字节集[] 字节集数组) 

    本方法设置返回码,成功返回己发送长度,失败返回-1。

公开 整数

发送数据(apr.套接字地址 套接字地址对象, 字节集 内容, 整数 标志 = 0) 

    本方法允许在无连接的套接字上指定一个目标地址。本方法设置返回码,成功返回己发送的长度,失败返回-1。

公开 字节集

接收数据(apr.套接字地址 套接字地址对象, 整数 长度, 整数 标志 = 0) 

    本方法允许在无连接的套接字上指定一个源地址,本方法设置返回码,成功返回取得的字节集,失败返回空字节集。

公开 整数

发送文件(apr.文件操作 文件句柄, 字节集[] 头数据, 字节集[] 尾数据, 文本 偏移长度, 整数 数据长度, 整数 标志 = 0) 

    本方法设置返回码,成功时返回己发送的数据长度、失败时返回-1。

公开 字节集

接收(整数 长度) 

    本方法设置返回码,成功返回取得的字节集,失败返回空字节集。

公开 apr.返回码

置选项(整数 选项值, 逻辑 启用) 

    设置套接字选项。

公开 apr.返回码

置暂停时间(文本 时间) 

    该方法与“置选项”配合使用实现套接字的永久阻塞、阻塞加超时和非阻塞模式: Unix平台: 当“置选项”方法的“选项值”参数设置了“SO_NONBLOCK”标志时,如果该方法的“时间”参数等于0,那么为不阻塞;如果该方法的“时间”参数小于0,那么永久阻塞;如果该方法的“时间”参数大于0,那么阻塞到超时。 Windows平台: 情况1:当“置选项”方法的“选项值”参数设置了“SO_NONBLOCK”标志并且“启用”参数为“假”时,如果该方法的“时间”参数等于0或小于0,那么为永久阻塞;如果该方法的“时间”参数大于0,那么阻塞到超时。 情况2:当“置选项”方法的“选项值”参数设置了“SO_NONBLOCK”标志并且“启用”参数为“真”时,不管该方法的“时间”参数为何值均不阻塞。

公开 逻辑

取选项(整数 选项) 

    取套接字选项,本方法设置返回码,执行成功时如果指定的“套接字选项”己启用,那么返回真;未启用和失败时返回假(请取得返回码验证是否执行成功)。

公开 文本

取暂停时间() 

    本方法设置返回码,成功返回微秒数,失败返回空文本。

公开 逻辑

收到紧急标记() 

    紧急标记是指带外数据在普通数据流中的位置,为判断是否接收到紧急标记,可使用该方法。本方法设置返回码,执行成功时当下一个要读的字节在紧急标志所标识的位置时,返回真;否则返回假(请取得返回码验证是否执行成功)。

公开 整数

取类型() 

    取套接字类型,本方法设置返回码,成功返回套接字类型,失败返回-1。

公开 整数

取协议() 

    本方法设置返回码,成功返回套接字协议(本值为在调用“创建套接字”方法时“协议”参数所设置的值),失败返回-1。

公开 apr.内存池

取内存池() 

    本方法设置返回码,成功返回内存池,失败返回空对象。

公开 apr.返回码

加入多播组(apr.套接字地址 套接字地址对象1, apr.套接字地址 套接字地址对象2, apr.套接字地址 套接字地址对象3) 

    添加套接字到多播组。

公开 apr.返回码

离开多播组(apr.套接字地址 套接字地址对象1, apr.套接字地址 套接字地址对象2, apr.套接字地址 套接字地址对象3) 

    在多播组撤消套接字。参数应该与“加入多播组”方法一样。

公开 apr.返回码

置多播生存时间(整数 周期) 

    指定外出多播数据报的生存时间,每跨1个路由减1。

公开 apr.返回码

是否接收回馈(逻辑 逻辑值) 

    本机是否可以接收到自己发送的多播数据报。

公开 apr.返回码

指定多播接口(apr.套接字地址 套接字地址对象) 

    指定发送多播数据报时的接口。

公开 静态 逻辑

取字节序() 

    返回“真”为小端(Little Endian,主机字节序),返回“假”为大端(Big Endian,网络字节序)。

公开 静态 字节集

十六位转网络字节序(字节集 主机16位数据) 

    将16位数从主机字节序转换为网络字节序,成功返回转换后的字节集,失败返回空字节集。

公开 静态 字节集

三十二位转网络字节序(字节集 主机32位数据) 

    将32位数从主机字节序转换为网络字节序,成功返回转换后的字节集,失败返回空字节集。

公开 静态 字节集

十六位转主机字节序(字节集 网络16位数据) 

    将16位数从网络字节序转换为主机字节序,成功返回转换后的字节集,失败返回空字节集。

公开 静态 字节集

三十二位转主机字节序(字节集 网络32位数据) 

    将32位数从网络字节序转换为主机字节序,成功返回转换后的字节集,失败返回空字节集。

公开 静态 字节集

三十二位反转(字节集 32位数据) 

    将32位数在网络字节序与主机字节序之间转换,成功返回转换后的字节集,失败返回空字节集。

公开 静态 字节集

六十四位反转(字节集 64位数据) 

    将64位数在网络字节序与主机字节序之间转换,成功返回转换后的字节集,失败返回空字节集。

系统.对象 继承的方法
比较类型, 是否实现, 取类名, 发送事件, 等于, 比较, 到文本, 比较引用

数据成员详细信息

队列长度

公开 静态 常量 整数 队列长度

    系统默认的队列长度。


再使用

公开 静态 常量 整数 再使用

    针对“发送文件”方法、WIN32平台。指定该标志可重用套接字对象,发送方法完成数据传输就会在传输层断开连接,然后该套接字对象就可以被重新使用,这样可减少反复创建套接字。


创建套接字

公开 apr.返回码 创建套接字(整数 通信域, 整数 套接字类型, 整数 协议, apr.内存池 内存池对象)

参数:

    通信域 - 见枚举“地址协议族”,该值应与“套接字地址”类的“创建套接字地址”方法的第二个参数相同。

    套接字类型 - 见枚举“套接字类型”。本参数与后面的“协议”常用两种组合,一种是“流式套接字”和“TCP协议”, 另一种是“数据报套接字”和“UDP协议”。

    协议 - 见枚举“套接字协议”,可为零。

    内存池对象


停止

公开 apr.返回码 停止(整数 关闭选项值)

    套接字的通信是双向的,本方法禁止套接字上的读或写,与“关闭”不同,“关闭”方法只有在最后一个引用被关闭时才释放网络端点,而“停止”方法使一个套接字处于不活动状态。

参数:

    关闭选项值 - 见枚举“套接字关闭”。


关闭

公开 apr.返回码 关闭()

    本方法只有在最后一个活动的引用被关闭时才释放网络端点,如果复制一个套接字(例如“文件操作”类的“复制文件操作对象”),那么直到关闭了最后一个引用它的套接字描述符之后才会释放网络端点。


绑定

公开 apr.返回码 绑定(apr.套接字地址 套接字地址对象)

    将套接字地址对象绑定到套接字对象。

参数:

    套接字地址对象


监听

公开 apr.返回码 监听(整数 队列长度 = 2147483647)

    等待客户端的连接请求。

参数:

    队列长度 - 本参数用于表示该进程可接受入队的连接请求数量,一旦队列满了,系统会拒绝多余连接请求,该值应基于服务器的负载和处理能力来选择。如果不能确信一个合适的值,建议使用本类静态成员“队列长度”(该值为系统平台推荐,不保证在所有平台上都有定义)。


接受

公开 apr.套接字 接受(apr.内存池 内存池对象)

    接受客户端的连接请求,本方法设置返回码,成功返回套接字对象(该套接字对象连接到调用“连接”的客户端),失败返回空对象。

参数:

    内存池对象


连接

公开 apr.返回码 连接(apr.套接字地址 套接字地址对象)

    连接服务器。如果是面向连接的网络服务(如枚举:“套接字类型”的“流式套接字”、“定序分组套接字”),在交换数据之前需要与服务端建立连接。

参数:

    套接字地址对象


取计算机名

公开 静态 文本 取计算机名(apr.内存池 内存池对象)

    本方法设置返回码,成功返回当前计算机名,失败返回空文本。

参数:

    内存池对象


发送

公开 整数 发送(字节集 内容)

    本方法设置返回码,成功返回己发送的长度,失败返回-1。

参数:

    内容 - 要发送的字节集。


发送块数据

公开 整数 发送块数据(字节集[] 字节集数组)

    本方法设置返回码,成功返回己发送长度,失败返回-1。

参数:

    字节集数组


发送数据

公开 整数 发送数据(apr.套接字地址 套接字地址对象, 字节集 内容, 整数 标志 = 0)

    本方法允许在无连接的套接字上指定一个目标地址。本方法设置返回码,成功返回己发送的长度,失败返回-1。

参数:

    套接字地址对象 - 接收端地址。

    内容 - 要发送的字节集。

    标志 - 该标志值默认为0,用户也可根据平台参考使用枚举“套接字读写标志”(枚举项依赖平台实现)。


接收数据

公开 字节集 接收数据(apr.套接字地址 套接字地址对象, 整数 长度, 整数 标志 = 0)

    本方法允许在无连接的套接字上指定一个源地址,本方法设置返回码,成功返回取得的字节集,失败返回空字节集。

参数:

    套接字地址对象 - 发送端地址。

    长度 - 要接收数据的长度,单位为字节。

    标志 - 该标志值默认为0,用户也可根据平台参考使用枚举“套接字读写标志”(枚举项依赖平台实现)。


发送文件

公开 整数 发送文件(apr.文件操作 文件句柄, 字节集[] 头数据, 字节集[] 尾数据, 文本 偏移长度, 整数 数据长度, 整数 标志 = 0)

    本方法设置返回码,成功时返回己发送的数据长度、失败时返回-1。

参数:

    文件句柄 - 己打开并可读的文件操作对象。

    头数据 - 可以为空数组。

    尾数据 - 可以为空数组。

    偏移长度 - 本参数为文件内容的偏移长度,单位为字节。

    数据长度 - 从偏移长度起要发送数据的长度,单位为字节。

    标志 - 默认值为0,可选的参数有本类静态成员“再使用”。仅针对WIN32平台,UNIX忽略该参数。


接收

公开 字节集 接收(整数 长度)

    本方法设置返回码,成功返回取得的字节集,失败返回空字节集。

参数:

    长度 - 要接收数据的长度。


置选项

公开 apr.返回码 置选项(整数 选项值, 逻辑 启用)

    设置套接字选项。

参数:

    选项值 - 见枚举“套接字选项”。

    启用 - 本参数控制某些“套接字选项”是否被启用,如果为真,那么选项被启用;如果为假,那么选项被禁止。


置暂停时间

公开 apr.返回码 置暂停时间(文本 时间)

    该方法与“置选项”配合使用实现套接字的永久阻塞、阻塞加超时和非阻塞模式: Unix平台: 当“置选项”方法的“选项值”参数设置了“SO_NONBLOCK”标志时,如果该方法的“时间”参数等于0,那么为不阻塞;如果该方法的“时间”参数小于0,那么永久阻塞;如果该方法的“时间”参数大于0,那么阻塞到超时。 Windows平台: 情况1:当“置选项”方法的“选项值”参数设置了“SO_NONBLOCK”标志并且“启用”参数为“假”时,如果该方法的“时间”参数等于0或小于0,那么为永久阻塞;如果该方法的“时间”参数大于0,那么阻塞到超时。 情况2:当“置选项”方法的“选项值”参数设置了“SO_NONBLOCK”标志并且“启用”参数为“真”时,不管该方法的“时间”参数为何值均不阻塞。

参数:

    时间 - 单位为微秒。


取选项

公开 逻辑 取选项(整数 选项)

    取套接字选项,本方法设置返回码,执行成功时如果指定的“套接字选项”己启用,那么返回真;未启用和失败时返回假(请取得返回码验证是否执行成功)。

参数:

    选项 - 见枚举“套接字选项”。


取暂停时间

公开 文本 取暂停时间()

    本方法设置返回码,成功返回微秒数,失败返回空文本。


收到紧急标记

公开 逻辑 收到紧急标记()

    紧急标记是指带外数据在普通数据流中的位置,为判断是否接收到紧急标记,可使用该方法。本方法设置返回码,执行成功时当下一个要读的字节在紧急标志所标识的位置时,返回真;否则返回假(请取得返回码验证是否执行成功)。


取类型

公开 整数 取类型()

    取套接字类型,本方法设置返回码,成功返回套接字类型,失败返回-1。


取协议

公开 整数 取协议()

    本方法设置返回码,成功返回套接字协议(本值为在调用“创建套接字”方法时“协议”参数所设置的值),失败返回-1。


取内存池

公开 apr.内存池 取内存池()

    本方法设置返回码,成功返回内存池,失败返回空对象。


加入多播组

公开 apr.返回码 加入多播组(apr.套接字地址 套接字地址对象1, apr.套接字地址 套接字地址对象2, apr.套接字地址 套接字地址对象3)

    添加套接字到多播组。

参数:

    套接字地址对象1 - 多播地址。

    套接字地址对象2 - 接口。

    套接字地址对象3 - 源地址。


离开多播组

公开 apr.返回码 离开多播组(apr.套接字地址 套接字地址对象1, apr.套接字地址 套接字地址对象2, apr.套接字地址 套接字地址对象3)

    在多播组撤消套接字。参数应该与“加入多播组”方法一样。

参数:

    套接字地址对象1 - 多播地址。

    套接字地址对象2 - 接口。

    套接字地址对象3 - 源地址


置多播生存时间

公开 apr.返回码 置多播生存时间(整数 周期)

    指定外出多播数据报的生存时间,每跨1个路由减1。

参数:

    周期 - 值可以为0到255,默认为1。


是否接收回馈

公开 apr.返回码 是否接收回馈(逻辑 逻辑值)

    本机是否可以接收到自己发送的多播数据报。

参数:

    逻辑值 - “真”表示接收,“假”表示禁止。


指定多播接口

公开 apr.返回码 指定多播接口(apr.套接字地址 套接字地址对象)

    指定发送多播数据报时的接口。

参数:

    套接字地址对象 - 指定发送组播报文所使用的本地IP地址和本地网络设备接口的索引号,用于发送组播数据报。


取字节序

公开 静态 逻辑 取字节序()

    返回“真”为小端(Little Endian,主机字节序),返回“假”为大端(Big Endian,网络字节序)。


十六位转网络字节序

公开 静态 字节集 十六位转网络字节序(字节集 主机16位数据)

    将16位数从主机字节序转换为网络字节序,成功返回转换后的字节集,失败返回空字节集。

参数:

    主机16位数据 - 以主机字节序表示的16位数。


三十二位转网络字节序

公开 静态 字节集 三十二位转网络字节序(字节集 主机32位数据)

    将32位数从主机字节序转换为网络字节序,成功返回转换后的字节集,失败返回空字节集。

参数:

    主机32位数据 - 以主机字节序表示的32位数。


十六位转主机字节序

公开 静态 字节集 十六位转主机字节序(字节集 网络16位数据)

    将16位数从网络字节序转换为主机字节序,成功返回转换后的字节集,失败返回空字节集。

参数:

    网络16位数据 - 以网络字节序表示的16位数。


三十二位转主机字节序

公开 静态 字节集 三十二位转主机字节序(字节集 网络32位数据)

    将32位数从网络字节序转换为主机字节序,成功返回转换后的字节集,失败返回空字节集。

参数:

    网络32位数据 - 以网络字节序表示的32位数。


三十二位反转

公开 静态 字节集 三十二位反转(字节集 32位数据)

    将32位数在网络字节序与主机字节序之间转换,成功返回转换后的字节集,失败返回空字节集。

参数:

    32位数据 - 以网络字节序或主机字节序表示的32位数。


六十四位反转

公开 静态 字节集 六十四位反转(字节集 64位数据)

    将64位数在网络字节序与主机字节序之间转换,成功返回转换后的字节集,失败返回空字节集。

参数:

    64位数据 - 以网络字节序或主机字节序表示的64位数。



http://dotef.eyuyan.com