phpsocket编程 讲解php websocket框架

摘要套接字用于进程间通信。进程间通信通常基于客户机-服务器模型。此时,客户机-服务器是可以相互交互的应用程序。客户端和服务器之间的交互需要连接。套接字编程负责在应用程序之间建立交互式连接。套接字变量要生成一个套接字,需要三个变量:一个协议、一个套接字类型和一...

摘要

套接字用于进程间通信。进程间通信通常基于客户机-服务器模型。此时,客户机-服务器是可以相互交互的应用程序。客户端和服务器之间的交互需要连接。套接字编程负责在应用程序之间建立交互式连接。

套接字变量

要生成一个套接字,需要三个变量:一个协议、一个套接字类型和一个公共协议类型。

协议

AF_INET//生成socket的协议是TCP或者UDP传输,使用IPV4的地址。

AF_INET6//生成socket的协议,通过TCP或UDP传输,用于IPV6地址。

AF_unix//本地协议,在unix和linux系统上使用。它很少使用,通常在客户端和服务器在同一台机器上时使用。

Socket typeSOCK _ STREAM//该协议是基于字节流的顺序、可靠、完整的数据链路。这是最常用的插座类型。这个套接字使用TCP进行传输。

SOCK_DGRAM//这个协议是一个无连接、固定长度的传输调用。这个协议不可靠,用UDP来链接。

SOCK_SEQPACKET//这个协议是一个双线的、可靠的链路,发送固定长度的数据包进行传输。这个包必须被完全接受才能被阅读。

SOCK_RAW//此套接字类型提供单一网络访问,此套接字类型使用ICMP协议。

SOCK_RDM//这种类型很少使用,在大多数操作系统上都没有实现。它用于数据链路层,不保证数据包的顺序。

公共协议

ICMP// Internet控制消息协议,主要用于***和主机,检查网络状态并报告错误消息。

UDP//用户数据消息协议,这是一种无连接且不可靠的传输协议。

TCP//传输控制协议是应用最广泛、最可靠的公共协议,可以保证数据包能够到达接收方。如果在传输过程中出现错误,它将重新发送错误数据包。

套接字连接过程

根据连接启动的方式和本地套接字连接的目标,套接字之间的连接过程可以分为三个步骤:服务器监控、客户端请求和连接确认。

(1)服务器监控:服务器套接字不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态。

(2)客户端请求:指客户端的套接字发出的连接请求,要连接的目标是服务器的套接字。因此,客户端套接字必须首先描述它所连接的服务器的套接字,指明服务器套接字的地址和端口号,然后向服务器套接字发出连接请求。

(3)连接确认:当服务器套接字**或接收到客户端套接字的连接请求时,响应客户端套接字的请求,建立新的线程,并将服务器套接字的描述发送给客户端。一旦客户端确认了这个描述,连接就建立了。而服务器套接字继续处于**状态,并继续接收来自其他客户端套接字的连接请求。

PHP套接字内部源代码

PHP套接字模拟请求

处理纯文本时,fgets获取最后一行字符后,foef函数返回的结果不为真。实际操作过程如下:

while()继续循环。fgets 获取倒数第二行的字符串feof返回false,进入下一次循环fgets获取最后一行数据一旦fegets函数被调用,feof函数仍然返回的是false。所以继续执行循环fget试图获取另外一行,但实际结果是空的。实际代码没有意识到这一点,试图处理另外根本不存在的一行,但fgets被调用了,feof放回的结果仍然是false进入死循环

本文来自繁华落尽与君老投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/534986.html

打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
() 0
上一篇 05-06
下一篇 05-06

相关推荐

  • websocket缺点有哪些 详解websocket应用及优缺点

    Notice: Undefined offset: 56 in/***/***root/wyc/wyc/wyc.phpon line67Notice: Undefined offset: 57 in/***/***root/wyc/wyc/wyc.phpon line67背景做过前端开发,知道有很多前端的工作内容,比如HTML,CSS,Javascript,I***ge,Flash等等的使用。为了提高应用程序的性能,

    2023-06-10 00:29:01
    745 0
  • phpsocket编程 讲解php websocket框架

    摘要套接字用于进程间通信。进程间通信通常基于客户机-服务器模型。此时,客户机-服务器是可以相互交互的应用程序。客户端和服务器之间的交互需要连接。套接字编程负责在应用程序之间建立交互式连接。套接字变量要生成一个套接字,需要三个变量:一个协议、一个套接字类型和一

    2023-05-06 06:07:02
    440 0

评论列表

联系我们

在线咨询: QQ交谈

邮件:admin@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信