gen-tcp

looking for a simple ssl erlang example

假如想象 提交于 2019-12-23 05:10:13
问题 in the book "Erlang programming" one of the exercises proposed was to print on screen the request coming from a browser using gen_tcp. I made it for http requests as follows: -module(tcp). -export([server/0, wait_connect/2]). server() -> {ok, ListenSocket} = gen_tcp:listen(1234, [binary, {active, false}]), wait_connect(ListenSocket,0). wait_connect(ListenSocket, Count) -> {ok, Socket} = gen_tcp:accept(ListenSocket), spawn(?MODULE, wait_connect, [ListenSocket, Count+1]), get_request(Socket, []

Erlang TCP sockets get closed

前提是你 提交于 2019-12-10 19:02:09
问题 To learn Erlang I am trying to implement a tiny web server based on gen_tcp . Unfortunately, my code seems to trigger some wired behaviour. To demonstrate the problem I have attached a minimised version of my implementation which is sufficient to reproduce the problem. It is just delivering a static 200 OK, no matter what the HTTP request was. The problem arises when I try to run ab (Apache HTTP server benchmarking) against my web server (using loopback interface). Without any concurrent

CLOSED error when establishing lots of connections with gen_tcp in parallel (Bug?)

£可爱£侵袭症+ 提交于 2019-12-08 04:43:08
问题 When trying to establish a largeish number of TCP connections in parallel I observe some weird behavior I consider a potential bug in gen_tcp . The scenario is a server listening on a port with multiple concurrent acceptors. From a client I establish a connection by calling gen_tcp:connect/3 , afterwards I send a "Ping" message to the server and wait in passive mode for a "Pong" response. When performing the 'get_tcp:connect/3' calls sequentially all works fine, including for large number of

gen_tcp smushed messages [duplicate]

天大地大妈咪最大 提交于 2019-11-27 15:42:47
This question already has an answer here: Erlang server, Java client - TCP messages get split? 3 answers I'm using socket_server from this tutorial and the following code for a client and server: Server: -module(echo_server). -export([start/0, loop/1]). % echo_server specific code start() -> spawn(socket_server, start, [?MODULE, 7000, {?MODULE, loop}]). loop(Socket) -> case gen_tcp:recv(Socket, 0) of {ok, Message} -> Msg = binary_to_term(Message), case Msg of start -> io:format("Got start message on socket ~p.~n", [Socket]), send_count(Socket, 10), gen_tcp:close(Socket); Other -> io:format(

gen_tcp smushed messages [duplicate]

青春壹個敷衍的年華 提交于 2019-11-26 17:17:19
问题 This question already has answers here : Erlang server, Java client - TCP messages get split? (3 answers) Closed 5 years ago . I'm using socket_server from this tutorial and the following code for a client and server: Server: -module(echo_server). -export([start/0, loop/1]). % echo_server specific code start() -> spawn(socket_server, start, [?MODULE, 7000, {?MODULE, loop}]). loop(Socket) -> case gen_tcp:recv(Socket, 0) of {ok, Message} -> Msg = binary_to_term(Message), case Msg of start -> io