[erlang-questions] SCTP active == true bug?

Eranga Udesh casper2000a@REDACTED
Sat Jun 9 18:30:09 CEST 2007


Hi,

I tried to make a SCTP server with {active, true} option flag and receive
Messages to the controlling process without the need to run gen_sctp:recv/1.
The modified server is as below in this email. However there are no messages
coming to the 'receive' block in server_loop, when sent from a SCTP client.
The original sample in the SCTP manual works fine (other than some syntax
errors).

What could be the error?

Also I found that kernel/include/inet_sctp.hrl is not getting installed when
installing Erlang.

Thanks,
- Eranga

-module(sctp_server).

-export([server/0,server/1]).
-include_lib("kernel/include/inet.hrl").
-include_lib("kernel/include/inet_sctp.hrl").

server() ->
    spawn(?MODULE, server, [[{127,0,0,1}, 1200]]).

server([Host,Port]) when is_list(Host), is_list(Port) ->
    {ok, #hostent{h_addr_list = [IP|_]}} = inet:gethostbyname(Host),
    io:format("~w -> ~w~n", [Host, IP]),
    server([IP, list_to_integer(Port)]);

server([IP, Port]) when is_tuple(IP) orelse IP == any orelse IP == loopback,
                      is_integer(Port) ->
    {ok,S} =
gen_sctp:open([{active,true},{ip,IP},{port,Port},{recbuf,65536}]),
    io:format("Listening on ~w:~w. ~w~n", [IP,Port,S]),
    ok     = gen_sctp:listen(S, true),
    server_loop(S).

server_loop(S) ->
    receive
      {error, Error} ->
        io:format("SCTP RECV ERROR: ~p~n", [Error]);
      Data ->
        io:format("Data: ~p~n", [Data]),
        server_loop(S)
    end.





More information about the erlang-questions mailing list