个使用最多的 socket 类型,这个 socket
是使用 TCP 来进行传输。
SOCK_DGRAM 这个协议是无连接的、固定长度的传输调用。该协议是不可靠的,使用
UDP 来进行它的连接。
SOCK_SEQPACKET 这个协议是双线路的、可靠的连接,发送固定长度的数据包进行传输。
必须把这个包完整的接受才能进行读取。
SOCK_RAW 这个 socket 类型提供单一的网络访问,这个 socket 类型使用 ICMP 公共协议。
(ping、traceroute
使用该协 议)
SOCK_RDM 这个类型是很少使用的,在大部分的操作系统上没有实现,它是提供给数
据链路层使用,不保证数据包的顺序
表三:公共协议
名字/
常量
描述
ICMP 互联网控制消息协议,主要使用在网关和主机上,用来检查网络状况和报告错误
信息
UDP 用户数据报文协议,它是一个无连接,不可靠的传输协议
TCP 传输控制协议,这是一个使用最多的可靠的公共协议,它能保证数据包能够到达
接受者那儿,如果在传输过程中发生错误,那么它将重新发送出错数据包。
现在你知道了产生一个 socket 的三个元素,那么我们就在 php 中使用 socket_create()
函数来产生一个 socket
。这个 socket_create()函数需要三个参数:一个协议、一个 socket 类
型、一个公共协议。socket_create()
函数运行成功返回一个 包含 socket 的资源类型,如果没
有成功则返回 false。
Resourece socket_create(int protocol, int socketType, int commonProtocol);
Socket 函数
函数名
描述
socket_accept() 接受一个 Socket 连接
socket_bind() 把 socket 绑定在一个 IP 地址和端口上
socket_clear_error() 清除 socket 的错误或者最后的错误代码
socket_close() 关闭一个 socket 资源
socket_connect() 开始一个 socket 连接