Frage

Das ist also wirklich eine zwei Teilefrage mit der ersten, die zum zweiten führt.

Ich arbeite an einem PHP-Serverprojekt und bin ein bisschen verwirrt mit all den verschiedenen Arten, wie ich eine Sockel erstellen kann.Ich habe es geschafft, drei Buchsen mit einer neuen Methode zu erstellen.Kennt jemand den grundlegenden Unterschied zwischen diesen drei Methoden, wenn irgendwelche?

Methode 1 mit 'socket_create' generasacodicetagpre.

Methode 2 mit 'fsockopen' generasacodicetagpre.

Methode 3 mit 'strom_socket_client' generasacodicetagpre.

Obwohl ich den Unterschied nicht verstehe, erforschte ich alle drei Optionen, die nach einem Weg suchen, um die TCP-Fenstergröße zu steuern.Ich versuche, ein Paket an einen Client über mein LAN zu drücken, der eine Daten-Nutzlast von 1460 Bytes aufweist, und nach Überprüfung einer Paketaufnahme des TCP-Datenteils meines Pakets wird immer mit 1448 Bytes kurz geschnitten.Irgendwelche Ideen?

Vielen Dank im Voraus!

War es hilfreich?

Lösung

You can't control the actual amount of data received at a time. TCP is a streaming protocol. It presents a byte-stream API to the application. You just have to be prepared to read and re-read until you have got what you want.

Andere Tipps

You should be able to do this with the socket_set_option command (where options are documented in the socket_get_option command):

$Socket1 = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)
// send window
socket_set_option($Socket1, SOL_SOCKET, SO_SNDBUF, 1460);

Just be sure to call it right after socket_create. If you need the receive window modified:

socket_set_option($Socket1, SOL_SOCKET, SO_RCVBUF, 1460);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top