학습 중심: erlang socket client
-module(client).
-export([start/0]).
start() ->
{ok, Socket} = gen_tcp:connect("localhost", 3333, [binary, {packet, 0}]),
spawn(fun() -> loop(Socket) end),
send_msg(Socket).
loop(Socket) ->
io:format("init....loop ~n"),
receive
{tcp,Socket,Data} ->
io:format("Received msg: ~p~n", [Data])
end,
loop(Socket).
send_msg(Socket) ->
Msg = io:get_line('Input you msg:'),
ok = gen_tcp:send(Socket, term_to_binary(Msg)),
send_msg(Socket).
받아들일 수 없으면 인터넷에서 자료를 찾는다. 원래는 socket이 연결을 만들 때 하나의 프로세스를 생성하고 서버에서 보내온 데이터는 이 프로세스에 직접 보낸다. 나는 loop(Socket)을 다른 프로세스에 넣으면 서버에서 보내온 데이터를 자연스럽게 받아들일 수 없다. 정확한 코드는 다음과 같다.
-module(client).
-export([start/0]).
start() ->
{ok, Socket} = gen_tcp:connect("localhost", 3333, [binary, {packet, 0}]),
spawn(fun() -> send_msg(Socket) end),
loop(Socket).
loop(Socket) ->
io:format("init....loop ~n"),
receive
{tcp,Socket,Data} ->
io:format("Received msg: ~p~n", [Data])
end,
loop(Socket).
send_msg(Socket) ->
Msg = io:get_line('Input you msg:'),
ok = gen_tcp:send(Socket, term_to_binary(Msg)),
send_msg(Socket).
헤헤...조금 더 늘었어요.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
React 구성 요소에서 소켓 이벤트 리스너가 여러 번 실행됩니다.기본적이지만 종종 간과되는 사이드 프로젝트를 하면서 배운 것이 있습니다. 이 프로젝트에는 단순히 두 가지 주요 부분이 포함되어 있습니다. 프런트 엔드: 반응 및 재료 UI 백엔드: Express, Typescript...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.