Correcte afhandeling close socket #6

Closed
opened 2020-11-07 11:33:52 +00:00 by marceln · 3 comments
Owner

Als het remote socket closed dan word dat niet goed gezien.
Een nieuw commando word gewoon weg geschreven en vervolgens blijft hij eeuwig proberen een antwoord te lezen.

De code moet dit detecteren en op de juiste manier afhandelen.
De mogelijke oplossingen

  • Een reconnect doen en het commando opnieuw sturen.
  • Een exceptie terug geven.

Vermoedelijk word het een combinatie van die twee.
High level functies zorgen voor een reconnect lowlevel functies werken met een exceptie.

Als het remote socket closed dan word dat niet goed gezien. Een nieuw commando word gewoon weg geschreven en vervolgens blijft hij eeuwig proberen een antwoord te lezen. De code moet dit detecteren en op de juiste manier afhandelen. De mogelijke oplossingen * Een reconnect doen en het commando opnieuw sturen. * Een exceptie terug geven. Vermoedelijk word het een combinatie van die twee. High level functies zorgen voor een reconnect lowlevel functies werken met een exceptie.
Author
Owner

Extra commando CLOSE in de stub server gemaakt.
Daarmee kunnen we het probleem simuleren.

test_close (lmwsip.tests.lmwsipTest) ... DEBUG:lmwsip:LmwSip.init: Start log^M
DEBUG:lmwsip:LmwSip.send(LI USER, ******)^M
DEBUG:lmwsip:LmwSip.recv: False: Waiting for data^M
DEBUG:lmwsip:recv: bytebuf: b'!\r'^M
DEBUG:lmwsip:recv: stringbuf: !^M^M
DEBUG:lmwsip:LmwSip.recv: result: !^M
DEBUG:lmwsip:LmwSip.send(CLOSE)^M
DEBUG:lmwsip:LmwSip.send(TI LMW)^M
DEBUG:lmwsip:LmwSip.recv: False: Waiting for data^M
DEBUG:lmwsip:recv: bytebuf: b''^M
DEBUG:lmwsip:recv: stringbuf: ^M
DEBUG:lmwsip:LmwSip.recv: False: Waiting for data^M
DEBUG:lmwsip:recv: bytebuf: b''^M
DEBUG:lmwsip:recv: stringbuf: ^M

Extra commando CLOSE in de stub server gemaakt. Daarmee kunnen we het probleem simuleren. ``` test_close (lmwsip.tests.lmwsipTest) ... DEBUG:lmwsip:LmwSip.init: Start log^M DEBUG:lmwsip:LmwSip.send(LI USER, ******)^M DEBUG:lmwsip:LmwSip.recv: False: Waiting for data^M DEBUG:lmwsip:recv: bytebuf: b'!\r'^M DEBUG:lmwsip:recv: stringbuf: !^M^M DEBUG:lmwsip:LmwSip.recv: result: !^M DEBUG:lmwsip:LmwSip.send(CLOSE)^M DEBUG:lmwsip:LmwSip.send(TI LMW)^M DEBUG:lmwsip:LmwSip.recv: False: Waiting for data^M DEBUG:lmwsip:recv: bytebuf: b''^M DEBUG:lmwsip:recv: stringbuf: ^M DEBUG:lmwsip:LmwSip.recv: False: Waiting for data^M DEBUG:lmwsip:recv: bytebuf: b''^M DEBUG:lmwsip:recv: stringbuf: ^M ```
Author
Owner

De volgende fouten moeten opgelost worden.

  1. Recv mag niet gaan lopen.
  2. Send moet al controleren of het versturen goed gegaan is.
De volgende fouten moeten opgelost worden. 1. Recv mag niet gaan lopen. 2. Send moet al controleren of het versturen goed gegaan is.
Author
Owner
Opgelost in: * 57f6619c80 * 3001b434a6 * 08af855c45
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Werk/lmwsip#6
No description provided.