AF_INET6//产生socket的协议,利用TCP或UDP来传输,用在IPV6的地址
AF_UNIX//本地协议,利用在unix和linux系统上,它很少利用,一样平常都是当客户端和做事器在同一台机器上的时候利用
Socket类型
SOCK_STREAM//这个协议是按照顺序的、可靠的、数据完全的基于字节流的链接。这是一个利用最多的socket类型,这个socket是利用TCP来进行传输。
SOCK_DGRAM//这个协议是无连接的、固定长度的传输调用。该协议是不可靠的,利用UDP来进行它的链接。
SOCK_SEQPACKET//这个协议是双线路的、可靠的链接,发送固定长度的数据包进行传输。必须把这个包完全的接管才能进行读取。
SOCK_RAW//这个socket类型供应单一的网络访问,这个socket类型利用ICMP协议。
SOCK_RDM//这个类型是很少利用的,在大部分的操作系统上没有实现,它是供应数据链路层利用,不担保数据包顺序。
公共协议ICMP//互联网掌握协议,紧张利用在网关和主机上,在检讨网络状态和报告缺点信息
UDP//用户数据报文协议,它是一个无连接,不可靠的传输协议
TCP//传输掌握协议,这是一个利用最多的可靠的公共协议,他能担保数据包能够到达接管者那儿,如果在传输过程中发生缺点,那么它将重新发送出错数据包
Socket连接过程根据连接启动的办法以及本地套接字要连接的目标,套接字之间的连接过程可以分为三个步骤:做事器监听,客户端要求,连接确认。
(1)做事器监听:是做事器端套接字并不定位详细的客户端套接字,而是处于等待连接的状态,实时监控网络状态。
(2)客户端要求:是指由客户真个套接字提出连接要求,要连接的目标是做事器真个套接字。为此,客户真个套接字必须首先描述它要连接的做事器的套接字,指出做事器端套接字的地址和端口号,然后就向做事器端套接字提出连接要求。
(3)连接确认:是指当做事器端套接字监听到或者说吸收到客户端套接字的连接要求,它就相应客户端套接字的要求,建立一个新的线程,把做事器端套接字的描述发给客户端,一旦客户端确认了此描述,连接就建立好了。而做事器端套接字连续处于监听状态,连续吸收其他客户端套接字的连接要求。
PHP socket内部源码PHP Socket仿照要求当处理纯文本的时候,fgets获取末了一行字符后,foef函数返回的结果并不是TRUE。实际的运算过程如下:
while()连续循环。fgets 获取倒数第二行的字符串feof返回false,进入下一次循环fgets获取末了一行数据一旦fegets函数被调用,feof函数仍旧返回的是false。以是连续实行循环fget试图获取其余一行,但实际结果是空的。实际代码没故意识到这一点,试图处理其余根本不存在的一行,但fgets被调用了,feof放回的结果仍旧是false进入去世循环