26. september 2001 - 10:21Der er
8 kommentarer og 1 løsning
Sockets i WxWorks
Jeg har følgende problem:
Jeg skal oprette en socketforbindelse imellem en WxWorks(server) maskine og et windowsprogram(client).
Jeg har lavet et windowsprogram, og testet det op imod en echoserver, og det ser ud til at fungere fint.
Problemet er nu når jeg skal lave min WxWorks server, kan jeg ikke læse på den indkommende socket, men jeg kan sagtens skrive til den. (Jeg tester med en telnet applikation.)
Det vil sige at jeg kan skabe forbindelse til serveren med telnet fra min lokale pc. Serveren opretter nu en dedikeret tråd til at håndtere denne forbindelse.
Når denne tråd oprettes starter den med at sende \"Hello world!\" til klienten, for derefter at skulle læse 4 tegn fra klienten med kommandoen: fioRead(sockethandle, (char*) mybuffer, 4);
Problemet er blot at klienten kan hamre som en gal i tastaturet uden at read returnerer. Det er som om at fioRead ikke vil returnere når den har læst de 4 tegn jeg beder den om.
Det der er endnu mere underligt er at når jeg trykker enter i telnet kommer følgende respons:
Skal man sende et enter i enden hvergang man skal sende til en socket??? Det er det eneste der kan få read() og recv() til at hoppe ud. Det er mærkeligt???
Eller er det telnet, der ikke sender det jeg tror den sender når jeg trykker enter???
Når der den ene gang skal sendes efter 10 tegn og den anden gang skal sendes efter 5 så ved read jo ikke hvor når der skal sendes når din buffer har forskellig størrelse hvergang, derfor er det jo meget smart at den ved den først skal sende når man trykker \"enter\" (altså \'\\n\'). Men man skal ikke trykke enter hvergang hvis det er en streng som har en værdi ved hjælp af cin>>. Men cin>> bruger selvfølgelig også \\n. sååå lad vær med at gå op i det, hvis det virker er det fedt :)
Ja man skal sku nok finde ud af det til sidst, godt gået :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.