Ich habe ein TCP Umgang mit Datenströmen. Es dauert 4096 Bytes gleichzeitig, aber ich brauche einen Weg, um die gesamte Socket-Größe zu finden, bevor sie empfangen wird. So kann ich feststellen, wie oft der Socket gelesen wird, bevor er den Socket wechselt. Es wird auch benachrichtigen, dass dies der letzte recv dieses Sockets ist, so dass ich etwas damit tun kann, bevor ich auf den anderen Socket wechsle, wenn dieser verfügbar ist.Wie finde ich heraus, wie viele Bytes in Socket vor dem Recv in Python?
def handle_tcp(self, sock, remote):
fdset = [sock, remote]
while True:
r, w, e = select.select(fdset, [], [])
# How to find out how much bytes need to be read from socket?
if sock in r:
non_blocking_calculation()
if remote.send(sock.recv(4096)) <= 0: break
if remote in r:
non_blocking_calculation()
if sock.send(remote.recv(4096)) <= 0: break
Was meinen Sie mit "Capturing the Last Send"? Möchten Sie die letzten gesendeten Daten behalten? Die letzte Menge an Bytes gesendet? Hoffe du kannst es ein bisschen klären! – Rezniaq
@Rezniaq Ich will es nicht behalten, ich möchte nur benachrichtigt werden, dass dies der letzte recv() dieses Sockets ist, damit ich dann eine andere Funktion verarbeiten kann. Dann gehe zurück, um auszuwählen, um gegebenenfalls zum anderen Socket zu wechseln. Ich werde es jetzt korrigieren – Anderson
@ Rezniaq z.B. nach 'select()', (decke (sizeofwholesocket/4096)) wird bestimmen, wie oft es gesendet wird – Anderson