Socket 套接字¶
属性 | 值 |
---|---|
命名空间 | fize\net |
类名 | Socket |
方法: |
---|
方法名 | 说明 |
---|---|
__construct() | 构造函数 |
__destruct() | 析构函数 |
accept() | 返回当前套接字上的当前连接Socket对象 |
bind() | 给套接字绑定名字 |
clearError() | 清除套接字或者最后的错误代码上的错误 |
close() | 关闭当前套接字资源 |
cmsgSpace() | 计算应分配用于接收辅助数据的缓冲区的大小。 |
connect() | 客户端开启一个套接字连接 |
createListen() | 创建一个新的监听全部接口的套接字 |
createPair() | 创建一对无区别的套接字Socket对象,并将它们存储在数组$obj中 |
create() | 创建一个套接字 |
getOption() | 获取当前套接字的套接字选项 |
|getOption() |获取当前套接字的套接字选项 | +——————+——————————————————————————————+ |getOpt() |获取当前套接字的套接字选项 使用socket_get_option()的别名socket_getopt() | +——————+——————————————————————————————+ |getPeerName() |获取主机/端口或UNIX文件系统路径的远端 | +——————+——————————————————————————————+ |getSockName() |获取具体连接的主机/端口或UNIX文件系统路径的远端 | +——————+——————————————————————————————+ |importStream() |将流封装成套接字 | +——————+——————————————————————————————+ |lastError() |获取最后的错误代码 | +——————+——————————————————————————————+ |listen() |开始监听 | +——————+——————————————————————————————+ |read() |从套接字读取最大长度字节数 | +——————+——————————————————————————————+ |recv() |从已连接的socket接收数据 | +——————+——————————————————————————————+ |recvFrom() |从socket(导向连接也可以)接收数据 | +——————+——————————————————————————————+ |recvMsg() |读取消息 | +——————+——————————————————————————————+ |select() |socket多路选择 | +——————+——————————————————————————————+ |send() |发送数据 | +——————+——————————————————————————————+ |sendMsg() |发送消息 | +——————+——————————————————————————————+ |sendTo() |对socket(导向连接也可以)发送数据 | +——————+——————————————————————————————+ |setBlock() |设置为块模式 | +——————+——————————————————————————————+ |setNonblock() |设置为非块模式 | +——————+——————————————————————————————+ |setOption() |设置当前socket | +——————+——————————————————————————————+ |setOpt() |设置当前socket | +——————+——————————————————————————————+ |shutdown() |关闭socket的读取、写入等 | +——————+——————————————————————————————+ |strerror() |根据错误代码返回错误描述 | +——————+——————————————————————————————+ |write() |写入到socket | +——————+——————————————————————————————+
方法¶
__construct()¶
构造函数
public function __construct (
resource $socket = null
)
参数: |
|
---|
bind()¶
给套接字绑定名字
public function bind (
string $address,
int $port = 0
) : bool
参数: |
|
---|
如果套接字是 AF_INET族,那么 address 必须是一个四点分法的 IP 地址(例如 127.0.0.1 ),该类型较为常用
如果套接字是 AF_UNIX族,那么 address 是 Unix 套接字一部分(例如 /tmp/my.sock )。
cmsgSpace()¶
计算应分配用于接收辅助数据的缓冲区的大小。
public static function cmsgSpace (
int $level,
int $type
) : int
参数: |
|
---|
该方法由于官方文档不齐全,暂不建议使用
connect()¶
客户端开启一个套接字连接
public function connect (
string $address,
int $port = 0
) : bool
参数: |
|
||||||
---|---|---|---|---|---|---|---|
返回值: | 成功时返回 TRUE , 或者在失败时返回 FALSE |
createListen()¶
创建一个新的监听全部接口的套接字
public function createListen (
int $port,
int $backlog = 128
) : \fize\net\Socket
参数: |
|
---|
createPair()¶
创建一对无区别的套接字Socket对象,并将它们存储在数组$obj中
public static function createPair (
int $domain,
int $type,
int $protocol,
array &$obj
) : bool
参数: |
|
||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
返回值: | 成功时返回 TRUE , 或者在失败时返回 FALSE 。 |
参数 `$type` :
SOCK_STREAM/SOCK_DGRAM/SOCK_SEQPACKET/SOCK_RAW/SOCK_RDM
create()¶
创建一个套接字
public function create (
int $domain,
int $type,
int $protocol
) : \fize\net\Socket
参数: |
|
---|
参数 `$type` :
SOCK_STREAM/SOCK_DGRAM/SOCK_SEQPACKET/SOCK_RAW/SOCK_RDM
getOption()¶
获取当前套接字的套接字选项
public function getOption (
int $level,
int $optname
) : mixed
参数: |
|
---|
getOpt()¶
获取当前套接字的套接字选项 使用socket_get_option()的别名socket_getopt()
public function getOpt (
int $level,
int $optname
) : mixed
参数: |
|
---|
getPeerName()¶
获取主机/端口或UNIX文件系统路径的远端
public function getPeerName (
string &$address,
int &$port = null
) : bool
参数: |
|
||||||
---|---|---|---|---|---|---|---|
返回值: | 成功时返回 TRUE , 或者在失败时返回 FALSE |
getSockName()¶
获取具体连接的主机/端口或UNIX文件系统路径的远端
public function getSockName (
string &$addr,
int &$port = null
) : bool
参数: |
|
||||||
---|---|---|---|---|---|---|---|
返回值: | 成功时返回 TRUE , 或者在失败时返回 FALSE |
importStream()¶
将流封装成套接字
public function importStream (
resource $stream
) : \fize\net\Socket
参数: |
|
---|
listen()¶
开始监听
public function listen (
int $backlog = 0
) : bool
参数: |
|
||||
---|---|---|---|---|---|
返回值: | 成功时返回 TRUE , 或者在失败时返回 FALSE |
read()¶
从套接字读取最大长度字节数
public function read (
int $length,
int $type = 2
) : string
参数: |
|
---|
recv()¶
从已连接的socket接收数据
public function recv (
string &$buf,
int $len,
int $flags
) : int
参数: |
|
||||||||
---|---|---|---|---|---|---|---|---|---|
返回值: | 返回一个数字,表示接收到的字节数。如果发生了错误,则返回 FALSE |
参数 `$buf` :
如果有错误发生,如链接被重置,数据不可用等等, buf 将被设为 NULL 。
参数 `$flags` :
flags的值可以为下列任意flag的组合。
使用按位或运算符(|)来 组合不同的flag。
MSG_OOB/MSG_PEEK/MSG_WAITALL/MSG_DONTWAIT
recvFrom()¶
从socket(导向连接也可以)接收数据
public function recvFrom (
string &$buf,
int $len,
int $flags,
string &$name,
int &$port = null
) : int
参数: |
|
||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
返回值: | 返回一个数字,表示接收到的字节数。如果发生了错误,则返回 FALSE |
参数 `$buf` :
如果有错误发生,如链接被重置,数据不可用等等, buf 将被设为 NULL 。
参数 `$flags` :
flags的值可以为下列任意flag的组合。
使用按位或运算符(|)来 组合不同的flag。
MSG_OOB/MSG_PEEK/MSG_WAITALL/MSG_DONTWAIT
recvMsg()¶
读取消息
public function recvMsg (
string $message,
int $flags = null
) : int
参数: |
|
||||||
---|---|---|---|---|---|---|---|
返回值: | 返回一个数字,表示接收到的字节数。如果发生了错误,则返回 FALSE |
该方法由于官方文档未编写,不建议使用
参数 `$flags` :
flags的值可以为下列任意flag的组合。
使用按位或运算符(|)来 组合不同的flag。
MSG_OOB/MSG_PEEK/MSG_WAITALL/MSG_DONTWAIT
select()¶
socket多路选择
public static function select (
array &$read,
array &$write,
array &$except,
int $tv_sec,
int $tv_usec = 0
) : int
参数: |
|
||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
返回值: | 返回获取到的socket个数 |
注意返回的是socket资源而非Socket对象
send()¶
发送数据
public function send (
string $buf,
int $len,
int $flags
) : int
参数: |
|
||||||||
---|---|---|---|---|---|---|---|---|---|
返回值: | 成功时返回发送的字节数量,失败时返回false |
sendMsg()¶
发送消息
public function sendMsg (
array $message,
int $flags
) : int
参数: |
|
||||||
---|---|---|---|---|---|---|---|
返回值: | 成功时返回发送的字节数量,失败时返回false |
该方法由于官方文档未编写,不建议使用
sendTo()¶
对socket(导向连接也可以)发送数据
public function sendTo (
string $buf,
int $len,
int $flags,
string $addr,
int $port = 0
) : int
参数: |
|
||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
返回值: | 成功时返回发送的字节数量,失败时返回false |
setOption()¶
设置当前socket
public function setOption (
int $level,
int $optname,
mixed $optval
) : bool
参数: |
|
||||||||
---|---|---|---|---|---|---|---|---|---|
返回值: | 成功时返回 TRUE , 或者在失败时返回 FALSE |
setOpt()¶
设置当前socket
public function setOpt (
int $level,
int $optname,
mixed $optval
) : bool
参数: |
|
||||||||
---|---|---|---|---|---|---|---|---|---|
返回值: | 成功时返回 TRUE , 或者在失败时返回 FALSE |
实际是socket_set_option的别名socket_setopt
shutdown()¶
关闭socket的读取、写入等
public function shutdown (
int $how = 2
) : bool
参数: |
|
---|
strerror()¶
根据错误代码返回错误描述
public static function strerror (
int $errno
) : string
参数: |
|
---|
write()¶
写入到socket
public function write (
string $buffer,
int $length = 0
) : int
参数: |
|
||||||
---|---|---|---|---|---|---|---|
返回值: | 返回写入的字节长度 |