perl_server.plPython: Stellen Sie sicher, dass 1024 Byte zu einem Zeitpunkt
$client_socket = $socket->accept();
if (defined $client_socket) {
$client_socket->autoflush(1);
$client_socket->setsockopt(SOL_SOCKET, SO_RCVTIMEO, pack('l!l!', 30, 0)) or die "setsockopt: $!";
}
while (1) {
my $line = "";
$client_socket->recv($line, 1024);
print "$line\n";
}
python_client.py
def random_line():
return "random len of line here"
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_address = (brock_host, int(brock_port))
sock.connect(server_address)
while True:
sock.sendall(random_line())
senden Wie gurantee i, so dass perl_server empfängt die Leitung zu einem Zeitpunkt (nicht verstümmelt) ?
Oder verhindern, dass die Leitung gepuffert wird, so dass sie nicht auf der Serverseite gedruckt wird, wenn keine andere Leitung eingeht?
ich glaube, wenn ich sicherstellen, dass die Größe des Artikels gesendet wird 1024, dann würde Perl Server eine Zeile auf einmal bekommen, richtig?
Wie kann ich sicherstellen, dass die Zeile 1024 Bytes gleichzeitig ist?
Was ist eine gute Strategie, wenn die Zeile länger als 1024 Bytes ist? (Nicht sicher, ob dies ein Fall geht es um besorgt zu sein)
normalerweise würde eine Linie irgendwo rund 50 Zeichen
sendall bedeutet es für Sie, –
@self sagen wir mal die Zeile 1524 Bytes hat, sendall() wird 1024 Bytes und 500 Bytes senden. Server kann 1024 Bytes lesen, aber es wird bei 500 Bytes blockiert, richtig? oder garantiert sendall 2x2424 Bytes zu senden? – ealeon