Thanks for the feedback, Marco.
The server is listening before the client starts.
Your code fails as well.
Cheers, Ugo
On Sun, Feb 21, 2010 at 8:57 AM, Marco Maggi <email address hidden> wrote:
> Disclaimer: I am no user of Cygwin. > > Sorry to test you for stupid things... Unfortunately it seems there is > no way to distinguish between a "failed to resolve" and a "failed to > connect" error; are you sure that the server is already listening when > the client connects? Does the following fail, too? > > (import (rnrs) > (ikarus)) > > (define SERVER-HOST "127.0.0.1") > (define SERVICE-PORT "8080") > > (fork (lambda (child-pid) > (display "server started\n") > (let ((listener > (tcp-server-socket (string->number SERVICE-PORT)))) > (display "server is listening\n") > (let-values ([(client->me me->client) > (accept-connection listener)]) > (display "server accepted connection\n") > (exit)))) > (lambda () > (display "client started\n") > (nanosleep 2 0) > (display "client is connecting...\n") > (let-values ([(server->me me->server) > (tcp-connect SERVER-HOST SERVICE-PORT)]) > (display "client is connected\n") > (exit)))) > > -- > tcp-connect fails under cygwin > https://bugs.launchpad.net/bugs/525050 > You received this bug notification because you are a direct subscriber > of the bug. > > Status in Ikarus Scheme: New > > Bug description: > Hi, > > tcp-connect fails with the following under cygwin (XP): > > Unhandled exception: > Condition components: > 1. &assertion > 2. &who: tcp-connect > 3. &message: "failed to resolve host name or connect" > 4. &irritants: ("127.0.0.1" "1000") > > I'm using the latest dev snapshot. I've used the 2 simple programs below > for test. They work fine on my Linux box. > > Thank you. > > Cheers, Ugo > > == Client code == > > #!/usr/bin/env scheme-script > (import (rnrs) > (rnrs base) > (rnrs bytevectors) > (rnrs unicode) > (rnrs io ports) > (ikarus ipc) > (rnrs syntax-case)) > > (define SERVER-HOST "127.0.0.1") > (define SERVICE-PORT "1000") > > > (define SOH-CHAR #x01) > (define VERSION-NUMBER #b1) > > > (define (client) > (let-values ([(server->me me->server) > (tcp-connect SERVER-HOST SERVICE-PORT)]) > (display "writing to server") (newline) > (put-u8 me->server 1) ; 'SOH' Character > (put-u8 me->server 1) ; Version Number > (put-bytevector me->server #vu8(00 00)) > (put-bytevector me->server #vu8(00 05)) > > (close-output-port me->server) > (display "reading from server ...") (newline) > (let ([res-header (get-bytevector-n server->me 13)]) > (close-input-port server->me)))) > > (client) > > == Server code == > > #!/usr/bin/env scheme-script > (import (rnrs) > (rnrs bytevectors) > (rnrs io ports) > (ikarus ipc)) > > (define SERVICE-PORT 1000) > > (define (server) > (let ([listener (tcp-server-socket SERVICE-PORT)]) > (let-values ([(client->me me->client) > (accept-connection listener)]) > (display (get-bytevector-n client->me 4)) > (put-u8 me->client 111) > (close-output-port me->client) > (close-input-port client->me)))) > > (server) > > To unsubscribe from this bug, go to: > https://bugs.launchpad.net/ikarus/+bug/525050/+subscribe >
Thanks for the feedback, Marco.
The server is listening before the client starts.
Your code fails as well.
Cheers, Ugo
On Sun, Feb 21, 2010 at 8:57 AM, Marco Maggi <email address hidden> wrote:
> Disclaimer: I am no user of Cygwin. /bugs.launchpad .net/bugs/ 525050 /bugs.launchpad .net/ikarus/ +bug/525050/ +subscribe
>
> Sorry to test you for stupid things... Unfortunately it seems there is
> no way to distinguish between a "failed to resolve" and a "failed to
> connect" error; are you sure that the server is already listening when
> the client connects? Does the following fail, too?
>
> (import (rnrs)
> (ikarus))
>
> (define SERVER-HOST "127.0.0.1")
> (define SERVICE-PORT "8080")
>
> (fork (lambda (child-pid)
> (display "server started\n")
> (let ((listener
> (tcp-server-socket (string->number SERVICE-PORT))))
> (display "server is listening\n")
> (let-values ([(client->me me->client)
> (accept-connection listener)])
> (display "server accepted connection\n")
> (exit))))
> (lambda ()
> (display "client started\n")
> (nanosleep 2 0)
> (display "client is connecting...\n")
> (let-values ([(server->me me->server)
> (tcp-connect SERVER-HOST SERVICE-PORT)])
> (display "client is connected\n")
> (exit))))
>
> --
> tcp-connect fails under cygwin
> https:/
> You received this bug notification because you are a direct subscriber
> of the bug.
>
> Status in Ikarus Scheme: New
>
> Bug description:
> Hi,
>
> tcp-connect fails with the following under cygwin (XP):
>
> Unhandled exception:
> Condition components:
> 1. &assertion
> 2. &who: tcp-connect
> 3. &message: "failed to resolve host name or connect"
> 4. &irritants: ("127.0.0.1" "1000")
>
> I'm using the latest dev snapshot. I've used the 2 simple programs below
> for test. They work fine on my Linux box.
>
> Thank you.
>
> Cheers, Ugo
>
> == Client code ==
>
> #!/usr/bin/env scheme-script
> (import (rnrs)
> (rnrs base)
> (rnrs bytevectors)
> (rnrs unicode)
> (rnrs io ports)
> (ikarus ipc)
> (rnrs syntax-case))
>
> (define SERVER-HOST "127.0.0.1")
> (define SERVICE-PORT "1000")
>
>
> (define SOH-CHAR #x01)
> (define VERSION-NUMBER #b1)
>
>
> (define (client)
> (let-values ([(server->me me->server)
> (tcp-connect SERVER-HOST SERVICE-PORT)])
> (display "writing to server") (newline)
> (put-u8 me->server 1) ; 'SOH' Character
> (put-u8 me->server 1) ; Version Number
> (put-bytevector me->server #vu8(00 00))
> (put-bytevector me->server #vu8(00 05))
>
> (close-output-port me->server)
> (display "reading from server ...") (newline)
> (let ([res-header (get-bytevector-n server->me 13)])
> (close-input-port server->me))))
>
> (client)
>
> == Server code ==
>
> #!/usr/bin/env scheme-script
> (import (rnrs)
> (rnrs bytevectors)
> (rnrs io ports)
> (ikarus ipc))
>
> (define SERVICE-PORT 1000)
>
> (define (server)
> (let ([listener (tcp-server-socket SERVICE-PORT)])
> (let-values ([(client->me me->client)
> (accept-connection listener)])
> (display (get-bytevector-n client->me 4))
> (put-u8 me->client 111)
> (close-output-port me->client)
> (close-input-port client->me))))
>
> (server)
>
> To unsubscribe from this bug, go to:
> https:/
>