<div dir="ltr">  Thomas<div><br></div><div>While I have not used the socket module, the documentation indicates that the Source variable returned from the recvfrom function is a map not a record. So you would just need to use map matching syntax to extract the data you want.</div><div><br></div><div>Mark</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Oct 24, 2019 at 6:42 AM Thomas Pircher <<a href="mailto:thp%2Berlang@p5r.uk">thp+erlang@p5r.uk</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi,<br>
<br>
I'm trying to use the new socket module, and I'm having difficulties<br>
extracting the IP address from the socket:sockaddr_in4 record, as<br>
returned from socket:recvfrom.<br>
In my particular case I'm only dealing with IPv4 addresses for now.<br>
<br>
> receive_data(Sock, State) -><br>
>     case socket:recvfrom(Sock, 0, nowait) of<br>
>         {ok, {From, Data}} -><br>
>             NewState = handle_data(From, Data, State),<br>
>             receive_data(Sock, NewState);<br>
>         {select, _SelectInfo} -> {ok, State};<br>
>         {error, Reason} -> {error, Reason}<br>
>     end.<br>
<br>
The problem is I don't really know how to match the From address. I would like<br>
to match the IP address in the above statement, something like the following<br>
pseudo-code:<br>
<br>
>     case socket:recvfrom(Sock, 0, nowait) of<br>
>         {ok, {#socket:sockaddr_in4{family=inet, addr=From}, Data}} -><br>
<br>
My (limited) understanding is that I would need to include a header file to use<br>
records from another module, but as far as I can see, the socket module does<br>
not define a header file.<br>
If need be I can extract the address in the body of the case statement.<br>
<br>
How would I get the sender address from the return value of the recvfrom function?<br>
<br>
Thanks,<br>
Thomas<br>
_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" rel="noreferrer" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
</blockquote></div>