On 18 May 2015, at 4:44 , Sven Van Caekenberghe <sven@stfx.eu> wrote:
On 18 May 2015, at 16:34, Manfred Kröhnert <mkroehnert42@googlemail.com> wrote:
Hi Sven,
On Mon, May 18, 2015 at 4:14 PM, Sven Van Caekenberghe <sven@stfx.eu> wrote:
On 18 May 2015, at 15:47, Manfred Kröhnert <mkroehnert42@googlemail.com> wrote:
Hi, apparently I am missing something else.
I can find devices when connected to a 'regular' LAN.
However, I have a camera that creates a Wifi accesspoint and makes itself discoverable via SSDP. Once I connect to this accesspoint my computer gets a valid IP address assigned and the NodeJS code is able to discover the device. Unfortunately, the Pharo snippet I posted before does not give me any results and hangs in Socket>>waitForDataIfClosed: .
Any further ideas?
Are you sure you restarted the image and your code after switching networks ?
I did not check this before. But I just downloaded a fresh 40613 image with PharoLauncher and started it after connecting to the camera accesspoint. The code snippet freezes there as well.
Manfred
The socket API is a bit confusing, since it mixes together the API's that match the primitives for sending/receiving TCP/UDP. To receive UDP data on the socket, you need something like: | message udpSocket host buffer read| message := (String crlf join: #('M-SEARCH * HTTP/1.1' 'HOST:239.255.255.250:1900' 'MAN:"ssdp:discover"' 'ST:ssdp:all' 'MX:1')). udpSocket := Socket newUDP. host := (NetNameResolver addressFromString: '239.255.255.250'). udpSocket sendData: message toHost: host port: 1900. buffer := String new:4096. "MX:1 means we expect replies within 1 second, let's be on the safe side and wait 2" 2 seconds wait. read := 1. [read > 0] whileTrue: [ read := (udpSocket receiveUDPDataInto: buffer) first. Transcript show: (buffer copyFrom:1 to:read)] Cheers, Henry