Hi, Elliott

在 2010-1-14,10:02, Elliott Slaughter 写道:

> 
> It isn't clear to me how unconnected UDP sockets are to be used, since the 
> host and port are unspecified. I would expect that most users would always 
> want to use connected sockets.

To use a "unconnected" UDP socket, you can still use SOCKET-SEND and 
SOCKET-RECEIVE, however, since the sending target is not specified in the 
socket, you must use the keyword argument HOST and PORT each time you call 
SOCKET-SEND.

A "unconnected" UDP socket is very useful when you're trying to communicate 
with a lot of remote UDP servers but don't want or can't created correspond 
number of sockets.

> 
> [SOCKET-SEND]
> 
> Syntax: SOCKET-SEND usocket buffer length &key host port
> 
> SOCKET-SEND is used for sending packets through a UDP usocket, the "buffer" 
> arguments usually need to be a vector of (unsigned-byte 8).
> 
> What does the return value of socket-send mean?

The return value of SOCKET-SEND is a integer which indicated how many bytes you 
actually send. In theory it should equal to the LENGTH argument in SOCKET-SEND, 
unless you're sending too much data.  Currently the return value when sending 
fails is not defined clearly, for some CLs "-1" will mean "sending fail", but I 
think I should change it to "NIL" instead in the future.

Considering UDP is unreliable, I suggest users never expect every packets could 
be sent successfully, however, a check on return value of SOCKET-SEND is 
usually necessary because it means some serious mistake is happening (i.e. no 
network), not that packets are dropped on their way.

The constant +max-datagram-packet-size+ is defined in usocket.lisp, line 14:

 (defconstant +max-datagram-packet-size+ 65536)

I didn't export the symbol +MAX-DATAGRAM-PACKET-SIZE+ because it's a constant 
and hard limit of UDP implementation. Users don't need to change it's value, 
instead, there're extra keyword arguments in API functions when user want to 
set maximum packet sizes.

--binghe

> 
> Thanks for working on this. I'm eagerly awaiting full compatibility win32 
> implementations.
> 
> -- 
> Elliott Slaughter
> 
> "Don't worry about what anybody else is going to do. The best way to predict 
> the future is to invent it." - Alan Kay

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________
usocket-devel mailing list
usocket-devel@common-lisp.net
http://common-lisp.net/cgi-bin/mailman/listinfo/usocket-devel

Reply via email to