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

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

[日期:2013-03-23] 来源:Linux社区  作者:fireroll [字体: ]
2. accept()方法:
语法:
远程连接套接字对象变量 = 服务端套接字对象变量->accept();
实例:
$remote_sock=$sock->accept();
讲解:
此方法的调用环境与传统C中SOCKET库调用原理一样,用于服务端的等待监听过程。
无参数,
返回值为远程连接的套接字对象变量。
调用此方法也是一个生成套接字的过程,只不过此套接字为远程连接的套接字而已,
它以对象变量方式存在,据有与本地套接字变量相同的属性与方法。

accept()方法在IO::Socket包里还提供另一种双返回值的调用方法:
语法:
(远程连接套接字对象变量,远程主机压缩地址变量)=服务端对象变量->accept();
实例:
($remote_sock,$remote_addr)=$sock->accept();
讲解:
与上一个返回值的调用方式基本相同,只是返回值中多了一个变量而已,
返回值中多了个变量------远程主机压缩地址变量。

3. bind()方法:
语法:
返回值变量=服务端套接字对象变量->bind(本地端口号,本地主机网络地址);
实例:
$result=$sock->bind(80,'127.0.0.1');
讲解:
bind方法用于在服务器端绑定主机的地址与端口。
它使用的两个参数都为未压缩值,
第一个为端口,
第二个为主机的网络适配器接口地址
(可以使用默认的保留字INADDR_ANY,
此保留字包括了主机的所有网络适配器接口地址,
调用它时,它会以穷举的方法穷举所有的网络适配器接口地址,直到找到为止);
返回值为布尔值,用于检测这次调用是否成功。

4. connect()方法:
语法:
返回值变量 = 套接字对象变量->connect(压缩地址变量);
实例:
$result = $sock->connect($pack_addr);
讲解:
常用于TCP连接(也可用于UDP,不过不常用),调用将向远程主机发送连接请求。
参数‘压缩地址变量’为sockaddr_in形式值,
返回值为布尔值。
若调用此方法则建立IO::Socket::INET对象时不能赋予参数'PeerAddr'或'PeerHost'、'PeerPort',
否则就会出现程序逻辑错误。

connect()方法也有双参数调用方式,使用起来更简单:
语法:
返回值变量=套接字对象变量->connect(远程端口号,远程主机地址);
实例:
$result = $sock->connect($remote_port,$remote_host);
讲解:
调用的目的与上面单参数的调用方式相当。
第一个参数为远程需要连接的主机的端口(等于new方法的参数'PeerPort'),
第二个参数为需要连接的主机地址(等于new方法的参数'PeerAddr'或'PeerHost'),
返回值为布尔值。linux
相关资讯       Linux Socket通信  Perl Socket 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

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