Experimenting with #sendUDPData:toHost:port:
Stefan Kersten
kerstens at cs.tu-berlin.de
Wed Dec 13 09:05:56 UTC 2000
John M McIntosh wrote:
> UDP support is not missing at the Smalltalk level as far as I know,
> since there are a bunch of UDP tests and no-one has complained and
> offered up an ENH change set for UDP at the Smalltalk level. However
> UDP support may be lacking in the VM you are using. There is some
> work being done on Unix socket support, see the note below that Rob
> Withers wrote about his version of sqUnixNetwork.c but note his note
> about UDP support. Check his list message and email him, perhaps he
> has a UDP version now?
[Rob Wither's message snipped]
Thanks a lot for the hint. I haven't tried to compile Rob Wither's code
yet (still being a little confused about the multitude of VM versions
apparently floating around at least for Unix). The little diff I
attached seems to fix the particular problem I had, however (applicable
to sqUnixSocket.c in Ian Piumarta's 2.8 VM).
I came around another issue, which I recall was also reported by the
original poster: the prinmitive
SocketPlugin>>primitiveSocketSendUDPDataBufCount
fails with a 'connection refused' errno when the server specified is not
up. Is this intended behavior for UDP sockets? If so, how would I
actually avoid primitiveFailed to be signalled, i.e. is there a way to
ensure the address's availability beforehand? In my application I'd like
to send some UDP data and simply do nothing if the packet fails to be
delivered.
TIA
<sk>
-------------- next part --------------
*** sqUnixSocket.c 2000/12/13 07:30:27 1.1
--- sqUnixSocket.c 2000/12/13 09:02:30
***************
*** 1305,1310 ****
(struct sockaddr *)&saddr,
&addrSize);
if (nread >= 0)
! return nread;
if (errno == EWOULDBLOCK)
{
--- 1305,1316 ----
(struct sockaddr *)&saddr,
&addrSize);
+
if (nread >= 0)
! {
! /* Store the return address */
! *address= ntohl(saddr.sin_addr.s_addr);
! *port= ntohs(saddr.sin_port);
! return nread;
! }
if (errno == EWOULDBLOCK)
{
More information about the Squeak-dev
mailing list
|