Hello Udo,

thanks for your detailed reply.
I am going to try your suggestions and report back afterwards.
Not sure though if I get to try it before next weekend.

The address I am sending to is definitely a multi-cast address (as defined
in the SSDP spec).
But what makes me wonder is why the minimal NodeJS example works in both
cases without modifications (regular router/accesspoint + camera
accesspoint) and the Pharo one only receives data in the first case.
But maybe there is something happening behind the curtains in NodeJS when
it comes to multi-cast addresses.

Thanks,
Manfred


On Mon, May 18, 2015 at 11:29 PM, Udo Schneider <
udo.schnei...@homeaddress.de> wrote:

> Hi Manfred,
>
> I just stumbled over the IP address you are using (239.255.255.250). If I
> remember correctly this is a IPv4 Class D Multicast address.
> (224.0.0.0-239.255.255.255).
>
> So if you want to transmit datagrams to this IP address or recieve
> datagrams sent to this multicast groups you have to set appropriate IP
> Options.
>
> You can set this options using Socket>>#setOption:value: and read them
> using Socket>>#getOption:. Please note that both methods expect the option
> to set as a name - not as constant. E.g.
>
> socket setOption: 'IP_MULTICAST_IF' value: multicastInterface.
>
> If I do remember correctly you have to set the following options for
> sending/receiving:
>
> Sending:
> IP_MULTICAST_IF
> (IP_MULTICAST_LOOP)
> (IP_MULTICAST_TTL)
>
> Sending should AFAIK work w/o setting any option - although
> IP_MULTICAST_IF is highly recommended.
>
> Receiving:
> (SO_REUSEADDR)
> IP_ADD_MEMBERSHIP
> (IP_DROP_MEMBERSHIP)
>
> Receiving only works if you joined the multicast group previously. So I
> assume that you need to do something like this (not tested).
>
> imrMultiaddr := #[239 255 255 250].
> imrInterface := #[0 0 0 0].
> ipMreq := imrMultiaddr , imrInterface.
> socket setOption: 'MEMBERSHIP' value: ipMreq.
>
> Hope this helps.
>
> CU,
>
> Udo
>
>
>
> On 18/05/15 16:34, Manfred Kröhnert wrote:
>
>> Hi Sven,
>>
>> On Mon, May 18, 2015 at 4:14 PM, Sven Van Caekenberghe
>> <s...@stfx.eu
>> <mailto:s...@stfx.eu>> wrote:
>>
>>
>>      > On 18 May 2015, at 15:47, Manfred Kröhnert
>>     <mkroehner...@googlemail.com
>>     <mailto:mkroehner...@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
>>
>
>
>
>

Reply via email to