Ik momenteel bezig met het schrijven van een programma die een verbinding opent naar een mailserver. Op het moment dat de verbinding gelegd is wil ik daar informatie uit lezen. Indien ik daar byte voor byte uitlees totdat ik een line-feed tegenkom ('\n') en er is daadwerkelijk iets te lezen gaat het goed.
Bij de mailserver van Tiscali krijg je dan zoiets:
+OK Tiscali POP server (v.3.0.0) started
Na deze lijn verwacht de mailserver input.
Maar op het moment dat ik nog een lijn wil uitlezen gaat het fout, die lijn is er namelijk niet. Dan blockt ie op het lezen. Hoe weet je dat er niets meer te lezen is??
Bij een webclient is dat niet zo lastig, je schrijft de request en dan lees je uit totdat de read functie faalt, omdat de server de verbindig verbroken heeft.
Nu weet ik toevallig dat de mailserver van Tiscali maar één statuslijntje laat zien, maar als het er meer (en een variabel aantal) zijn, hoe lees ik ze dan uit zonder dat ik daarop blockt als er niets meer is.
Niet echt van toepassing maar ik programmeer in C onder linux (kernel 2.4).
Bij de mailserver van Tiscali krijg je dan zoiets:
+OK Tiscali POP server (v.3.0.0) started
Na deze lijn verwacht de mailserver input.
Maar op het moment dat ik nog een lijn wil uitlezen gaat het fout, die lijn is er namelijk niet. Dan blockt ie op het lezen. Hoe weet je dat er niets meer te lezen is??
Bij een webclient is dat niet zo lastig, je schrijft de request en dan lees je uit totdat de read functie faalt, omdat de server de verbindig verbroken heeft.
Nu weet ik toevallig dat de mailserver van Tiscali maar één statuslijntje laat zien, maar als het er meer (en een variabel aantal) zijn, hoe lees ik ze dan uit zonder dat ik daarop blockt als er niets meer is.
Niet echt van toepassing maar ik programmeer in C onder linux (kernel 2.4).
edit:
Ik heb het even met telnet bekeken en die schijnt er niet zo'n moeite mee te hebben om meerdere regels uit te lezen en als die er niet meer zijn gewoon weer met een input-prompt te verschijnen.
Ik heb het even met telnet bekeken en die schijnt er niet zo'n moeite mee te hebben om meerdere regels uit te lezen en als die er niet meer zijn gewoon weer met een input-prompt te verschijnen.