Talking to TCP server from shell
Miles Fidelman
mfidelman@REDACTED
Fri Nov 12 18:18:41 CET 2021
Are you sure that you have telnet enabled? These days, it's pretty
standard to turn off telnet for security reasons, and only allow login
via ssh.
You might try using some of telnet's debuging modes, or nc (netcat) to
see what's going on (or not) during connection establishment.
Miles Fidelman
Magnus Leone wrote:
> 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.
--
In theory, there is no difference between theory and practice.
In practice, there is. .... Yogi Berra
Theory is when you know everything but nothing works.
Practice is when everything works but no one knows why.
In our lab, theory and practice are combined:
nothing works and no one knows why. ... unknown
More information about the erlang-questions
mailing list