Vorweg: es geht um ein Tool, das viele Clients bedient und nicht auf einen warten kann. Es geht also um speed.
Ich bin gerade am rätseln, was man am besten macht, wenn
- ich einen Server laufen habe
- Client verbindet
- ich (Server) dem Client Pakete schicke, dieser aber "lahmt" und -
- ich nicht mehr senden kann, da Client überläuft (socket würde blockieren bis Timeout greift oder Senden wieder möglich ist)
Alle folgenden Pakete droppen, bis das Senden an den Client wieder möglich ist,
oder Verbindung zum Client schließen?
(Oder irgendwas, das mir nicht einfällt =)
Ich denke Pakete droppen wäre falsch, denn dann verpasst der Client evtl wichtige Pakete und "kommt nicht mehr klar".
Weiß auch grad nicht wie ich danach im Netz suchen soll
EDIT:
so kann man sich das in etwa vorstellen:
--------------
.can send: true
bytes sent: 10
bytes sent all: 4360
--------------
.can send: true
bytes sent: 10
bytes sent all: 4370
--------------
.can send: true
bytes sent: 10
bytes sent all: 4380
--------------
.can send: true
bytes sent: 10
bytes sent all: 4390
--------------
.can send: false <--- weil client nie daten liest, läuft er über und ich kann nicht mehr senden
bytes sent: 0
bytes sent all: 4400
--------------
.can send: false
bytes sent: 0
bytes sent all: 4410
--------------
.can send: false
bytes sent: 0
bytes sent all: 4420
--------------
.can send: false
bytes sent: 0
bytes sent all: 4430
--------------
Alles anzeigen