所以这实际上是一个两部分的问题,第一部分导致第二部分。
我正在开发一个 PHP 服务器项目,我对创建套接字的所有不同方式有点困惑。我已经设法使用一种新方法创建了三个套接字。有谁知道这三种方法之间的根本区别(如果有的话)?
方法 1 使用 'socket_create'
$Socket1 = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)
socket_bind($Socket1, $LocalIP, $LocalPort)
socket_connect($Socket1, $DestIP, $DestPort)
//Method 1 Read
socket_read($Socket1)
//Method 1 Write
socket_write($Socket1, $WriteMsg, strlen($WriteMsg))
方法 2 使用“fsockopen”
$Socket2 = fsockopen($Server, $Port)
//Method 2 Read
fgets($Socket2)
//Method 2 Write
fputs($Socket2, $PutMsg, strlen($PutMsg))
方法 3 使用'stream_socket_client'
$Socket3 = stream_socket_client('tcp://'.$DestIP.':'.$DestPort)
//Method 3 Read
stream_socket_recvfrom($Socket3, $RecSize)
//Method 3 Write
stream_socket_sendto($Socket3, $SendMsg)
虽然我不明白其中的区别,但我一直在探索所有三个选项,以寻找一种控制 TCP 窗口大小的方法。我试图通过我的 LAN 将数据包推送到客户端,该数据有效负载为 1460 字节,在查看数据包捕获后,我的数据包的 TCP 数据部分总是缩短为 1448 字节。有任何想法吗?
提前致谢!