Hello,

I would like to discuss one point regarding this method. In my opinion its
parameter hostAddress is expected to be a SocketAdress, but the method
interprets it as a ByteArray. So in the code bellow, the returned result is
0, although the host responds a datagram:

server := NetNameResolver addressForName: 'localhost'.
socket := Socket newUDP.
socket sendUDPData: packet toHost: server port: 30000.
socket waitForData.
packet := ByteArray new: 200.
result := socket receiveDataInto: packet fromHost: server port: 30000.

The method receiveUDPData:toHost:port: should be amended as follow to make
it symmetric with sendUDPData... :

        [ | datagram |
                datagram := self receiveUDPDataInto: aStringOrByteArray.
                ((datagram at: 2) *asSocketAddress* = hostAddress and: [ 
(datagram at: 3)
= portNumber ]) 
                        ifTrue: [ ^ datagram at: 1 ]
                        ifFalse: [ ^0 ] ] repeat

What do you think?



-----
http://drgeo.eu
--
Sent from: http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.html

Reply via email to