의 목록에 클라이언트를 추가하므로 클라이언트가 연결할 수있는 기본 서버를 작성 중입니다. 텔넷으로 테스트 중이지만 문제는 클라이언트를 목록에 저장하는 방법입니다. 그러면 서버에 연결된 사람을 인쇄 할 수 있습니다. 클라이언트를 저장하는 목록에서 ++ 연산자를 사용해 보았지만 프로세스 오류가 계속 발생합니다. 어떤 도움이 많이 읽기, 감사 감사하겠습니다Erlang
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.
:
여기에 지금까지 내 코드입니다.
감사합니다. 내가 겪고있는 유일한 다른 문제는 쉘 목록에 클라이언트 목록을 출력하는 방법이다. 나는 io : fwrite를 시도했지만 프로세스가 충돌한다. – user2484294
'io : 형식 ("클라이언트 : ~ p", [클라이언트 목록]). – Isac