你好,游客 登录 注册 搜索
背景:
阅读新闻

Linux Socket实现机器间的通信(Perl)

[日期:2013-03-23] 来源:Linux社区  作者:fireroll [字体: ]
8. recv()方法:
语法:
压缩远程地址地址 = 套接字对象变量->recv(接收数据变量,接收数据值长度,标志值);
实例:
$remote_pack_address=$sock->recv($mem,100,0);
讲解:
recv方法是专门为SOCKET接收数据的特殊方法,
调用格式与参数格式也与C库的SOCKET API基本一样。
第一个参数是存放接收后的数据的变量值;
第二个参数是接收的数据的长度值;
第三个参数是标志值,默认为0就可以了(省略此值不填,系统默认也为0)。

二、IO::Select :
IO::Select包是一个select系统调用的面向对象的Perl接口。
它实现了类似于系统函数select的调用,允许用户了解到有哪些句柄 就绪可读 / 可写 / 未知的例外

方法:
1. new([HANDLE])
创建新的对象,并且可随意用一组句柄来初始化

2. add(HANDLES)
向对象中增加一个句柄的列表,它是一个事务发生时将要返回的值,
IO::Select将这些值保存在高速缓冲区内,并以句柄的fileno建立索引,
因此如果多于一个的句柄被指定相同的fileno,那么只将最后一个存入缓冲区。
每一个句柄能够成为一个IO::Select对象,一个整数或第一元素为IO::Handle或整数的数组的指针。

3. remove(HANDLES)
从对象中移除所给的句柄,同样针对句柄的fileno工作,所增加的具有相同fileno的句柄将不被通过。

4. exits(HANDLES)
如果句柄现在是存在的,返回一个真值(实际上是句柄本身),其他情况返回未定义。

5. handles
返回一个数组,元素包括所有已注册的数组。

6. can_read([TIMEOUT])
返回一个数组,元素包括已就绪的可读的句柄。
TIMEOUT是在返回一个空数组前的等待的最大时间数,
若未指定TIMEOUT并且所有句柄已注册,则调用将阻塞。

7. can_write([TIMEOUT])
除了是返回可写的句柄外其它与can_read相同。

8. has_exception([TIMEOUT])
检测句柄的异常状态。

9. count()
返回句柄的数目,
当调用一个can_方法或对象通过select静态方法时被检测的句柄的数目。

10. bit()
Return the bit string suitable as argument to the core select() call

11. select(READ,WRITE,EXCEPTION[,TIMEOUT])
select是一个静态方法,调用它要像调用new()那样带上包名。
READ, WRITE 和EXCEPTION 可以是undef或IO::Select对象。
TIMEOUT是可选的,具有与核心selcet调用相同的作用。
返回的结果
是一个三元素的数组,
每个元素是分别指向存储着已就绪可读,可写和未知状态的句柄所组成的数组的指针。
如果遇到错误返回一个空列表。linux
相关资讯       Linux Socket通信  Perl Socket 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款