所以我正在编写一个客户端可以连接的基本服务器。我正在使用 telnet 对其进行测试,但我的问题是如何将我的客户端存储在列表中,这样我就可以打印出谁连接到服务器。我尝试在存储客户端的列表上使用 ++ 运算符,但我不断收到流程错误。
到目前为止,这是我的代码:
cell_process()->
io:fwrite("In cell~n"),
{ok,Listening_socket} = gen_tcp:listen(21,
[binary,
{backlog,5},
{active,false},
{packet,line}]),
loop(Listening_socket).
loop(Listening_socket)->
case gen_tcp:accept(Listening_socket) of
{ok,Client_socket} ->
gen_tcp:send(Client_socket, "Hello, what is your name?"),
{_,Name} = gen_tcp:recv(Client_socket,0),
gen_tcp:send(Client_socket, "Hello, "),
gen_tcp:send(Client_socket, Name),
io:fwrite([Name]),
spawn(fun()-> client_loop(Client_socket) end),
loop(Listening_socket);
{error,Why}->io:fwrite("Error: "),
io:fwrite([Why])
end.
client_loop(Client_socket)->
case gen_tcp:recv(Client_socket,0) of
{ok,Message}-> gen_tcp:send(Client_socket,Message),
%% code not yet implemented here
client_loop(Client_socket);
{error,Why}-> io:fwrite("Error: ~s~n",[Why]),
gen_tcp:close(Client_socket)
end.
任何帮助将不胜感激,感谢阅读。