したがって、これは実際には 2 つの部分からなる質問であり、最初の質問から 2 番目の質問へと続きます。
私は PHP サーバー プロジェクトに取り組んでおり、ソケットを作成するさまざまな方法に少し混乱しています。新しい方法を使用して、それぞれ 3 つのソケットを作成することができました。もしあれば、これら3つの方法の根本的な違いを知っている人はいますか?
「socket_create」を使用した方法 1
$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))
「fsockopen」を使用する方法 2
$Socket2 = fsockopen($Server, $Port)
//Method 2 Read
fgets($Socket2)
//Method 2 Write
fputs($Socket2, $PutMsg, strlen($PutMsg))
「stream_socket_client」を使用する方法 3
$Socket3 = stream_socket_client('tcp://'.$DestIP.':'.$DestPort)
//Method 3 Read
stream_socket_recvfrom($Socket3, $RecSize)
//Method 3 Write
stream_socket_sendto($Socket3, $SendMsg)
違いはわかりませんが、TCP ウィンドウ サイズを制御する方法を探して 3 つのオプションすべてを調べていました。データ ペイロードが 1460 バイトのパケットを LAN 経由でクライアントにプッシュしようとしていますが、パケット キャプチャを確認すると、パケットの TCP データ部分が常に 1448 バイトで短くなります。何か案は?
前もって感謝します!