Issue fixed, problem is in usocket (of course). The created server socket is IPv4, but client socket is IPv6, that’s why the sending data cannot be received … now using “localhost” they’re both IPv6 sockets.
I’ve committed to Git master [1], this time the original test code runs perfectly.
Thanks to everyone, let me know if there’re still other issues for CCL 1.11.
-- Chun
[1] https://github.com/usocket/usocket/commit/966de96f5f1954f7f5aa91e1191317e12a...
Il giorno 20/mag/2015, alle ore 20:44, Karsten Poeck Karsten.Poeck@gmail.com ha scritto:
On 20.05.15 20:25, Chun Tian (binghe) wrote:
Hi,
I was working on this issue since 10 hours ago when I firstly saw the mail. I’ve already committed an initial fix [1] to usocket Git master, in which I handled two compatibility issues between usocket and ccl-1.11, and now there’s no error reported when creating and sending sockets. But it seems that CCL::SEND-TO cannot actually send out the data to a “connected” UDP socket, as a result the test code is blocked at (usocket:socket-receive …).
Usocket’s backend code for CCL is basically just a wrapper (even more true for ccl-1.11), my next step is to remove all usocket wrappers and only use CCL’s native API to reproduce the same issue. I’ll submit trac tickets to CCL if I found something.
Regards,
Chun
Looking at the code for socket-connect in current usocket from quicklisp there are a 2 things that leaved me slightly puzzled.
The signature is: (defun socket-connect (host port &key (protocol :stream) element-type timeout deadline nodelay local-host local-port)
But later it does (host-to-hbo local-host). This fails miserably when local-host is nil, which seems to be an ok use of it (and happens in our example for the client socket)
It also does pass :address-family (openmcl-socket:socket-address-family remote) to openmcl-socket:make-socket.
But remote is only set, when (and host port) otherwise it stays nil, so the socket-address will also fail. This happens for me in the server socket.
Looking at your commit you seem to have addressed this already though :-)
Karsten
Openmcl-devel mailing list Openmcl-devel@clozure.com https://lists.clozure.com/mailman/listinfo/openmcl-devel