Talking to TCP server from shell
Magnus Leone
magnus.falk@REDACTED
Fri Nov 12 02:24:44 CET 2021
Hello,
I'm working on making a very basic talk about networking, and eventually a
webserver, but I thought I'd start with the very basic parts; just a TCP
echo server. The thing is that the talk is not specifically about Erlang,
I'm just using that as I'm most familiar with it (and hey, if I get some
people interested, that's great). So I wanted the client side to be just a
regular shell.
Here is where my problem comes in - I can't seem to get the server process
to accept the incoming connection when it comes from a shell. The code is
pretty much straight out of Joe's book and it works fine as long as the
other side is also an Erlang process. What I've tried so far:
>telnet localhost 7777
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused
>netcat localhost 7777
*no output*
Does anyone know how I can use bash to connect to a TCP socket in this
scenario?
Cheers,
Magnus
start(Port) ->
{ok, ListenSocket} =
gen_tcp:listen(Port, [list, {packet, 0},
{reuseaddr, true},
{active, true}]),
{ok, Socket} = gen_tcp:accept(ListenSocket),
ok = gen_tcp:close(ListenSocket),
io:format("Server accepted connection on port ~p~n", [Port]),
loop(Socket).
loop(Socket) ->
receive
{tcp, Socket, StringMsg} ->
io:format("Server received message: ~p~n", [StringMsg]),
Reply = "Echo " ++ StringMsg,
io:format("Server replying: ~p~n", [Reply]),
gen_tcp:send(Socket, Reply),
loop(Socket);
{tcp_closed, Socket} ->
io:format("Server socket closed - shutting down...~n")
end.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20211112/70426d46/attachment.htm>
More information about the erlang-questions
mailing list