您的位置:首页 > 编程语言 > PHP开发

PHP中socket_*系列函数

2016-04-20 00:00 447 查看
摘要: socket函数直接跟互联网的协议进行发送信息。相对于fopen,sock的流来讲,他们操作在一个比较底层的级别。通常,他们都是对C 函数进行封装,并且名称都类似。如果你有使用C进行socket编程的经验,那么使用这些函数将是非常熟练的。

resource socket_accept ( resource
$socket
)

接受一个Socket连接

After the socket
socket
has been created using socket_create(), bound to a name with socket_bind(), and told to listen for connections with socket_listen(), this function will accept incoming connections on that socket.

bool socket_bind ( resource
$socket
, string
$address
[, int
$port
= 0 ] )

把socket绑定在一个IP地址和端口上

void socket_clear_error ([ resource
$socket
] )

清除socket的错误或者最后的错误代码

void socket_close ( resource
$socket
)

关闭一个socket资源

bool socket_connect ( resource
$socket
, string
$address
[, int
$port
= 0 ] )

开始一个socket连接

Initiate a connection to
address
using the socket resource
socket
, which must be a valid socket resource created with socket_create().

resource socket_create_listen ( int
$port
[, int
$backlog
= 128 ] )

在指定端口打开一个socket监听

一种比socket_create更简单的产生一个socket进行监听。这个产生的socket将监听指定的端口,后面可选的参数backlog是设置允许最大的连接数。

bool socket_create_pair ( int
$domain
, int
$type
, int
$protocol
, array
&$fd
)

产生一对没有区别的socket到一个数组里

产生一对socket连接。首先前三个参数是对一个socket_create的描述,这个handles参数是一个包含两个socket资源的数组。该函数是对C里面socketpair函数的封装。

resource socket_create ( int
$domain
, int
$type
, int
$protocol
)

产生一个socket,相当于产生一个socket的数据结构

domain 参数指定哪个协议用在当前套接字上。

type 参数用于选择套接字使用的类型。

protocol 参数设置指定
domain
套接字下的具体协议。这个值可以使用 getprotobyname() 函数进行读取。如果所需的协议是 TCP 或 UDP,可以直接使用常量
SOL_TCP
SOL_UDP


mixed socket_get_option ( resource
$socket
, int
$level
, int
$optname
)

获取socket选项

返回一个下表中所列的一个添加值,你必须提供一个由socket_create产生的socket资源和一个等级。这个获取的socket级别,可以使用SOL_SOCKET来确定这个级别参数。

bool socket_getpeername ( resource
$socket
, string
&$address
[, int
&$port
] )

获取远程类似主机的ip地址

从指定的一个连接中获取地址和端口。如果连接为Unix socket,那么将返回文件系统的路径。

bool socket_getsockname ( resource
$socket
, string
&$addr
[, int
&$port
] )

获取本地socket的ip地址

放置一个名字到socket中,并且加上address和port参数。失败返回false。

socket_iovec_add() 添加一个新的向量到一个分散/聚合的数组

socket_iovec_alloc() 这个函数创建一个能够发送接收读写的iovec数据结构

socket_iovec_delete() 删除一个已经分配的iovec

socket_iovec_fetch() 返回指定的iovec资源的数据

socket_iovec_free() 释放一个iovec资源

socket_iovec_set() 设置iovec的数据新值

int socket_last_error ([ resource
$socket
] )

获取当前socket的最后错误代码

bool socket_listen ( resource
$socket
[, int
$backlog
= 0 ] )

监听由指定socket的所有连接

backlog 参数,待办事项列表

string socket_read ( resource
$socket
, int
$length
[, int
$type
= PHP_BINARY_READ ] )

读取指定长度的数据

socket_readv() 读取从分散/聚合数组过来的数据

socket_recv() 从socket里结束数据到缓存

socket_recvfrom() 接受数据从指定的socket,如果没有指定则默认当前socket

socket_recvmsg() 从iovec里接受消息

socket_select() 多路选择

socket_send() 这个函数发送数据到已连接的socket

socket_sendmsg() 发送消息到socket

socket_sendto() 发送消息到指定地址的socket

socket_set_block() 在socket里设置为块模式

socket_set_nonblock() socket里设置为非块模式

socket_set_option() 设置socket选项

socket_shutdown() 这个函数允许你关闭读、写、或者指定的socket

string socket_strerror ( int
$errno
)

返回指定错误号的详细错误

int socket_write ( resource
$socket
, string
$buffer
[, int
$length
= 0 ] )

写数据到socket缓存

Returns the number of bytes successfully written to the socket 或者在失败时返回
FALSE
.

socket_writev() 写数据到分散/聚合数组
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: