我具有使用調用gen_tcp插座,它應該接收使用{active, true}
,它們總是大小5(例如Command = <<"hello">>
)接收來自調用gen_tcp套接字數據的特定量
{ok, ListenSocket} = gen_tcp:listen(5555, [{active, true}, {mode, binary},
{packet, 0}]),
{ok, Socket} = gen_tcp:accept(ListenSocket),
loop().
receive() ->
{tcp, _Socket, Message:4/binary} ->
io:format("Success~n", []),
loop();
{tcp, _Socket, Other} ->
io:format("Received: ~p~n", [Other]),
loop()
end.
的但是,如果我嘗試一些二進制命令下面的代碼連接作爲這樣的客戶端:
1> {ok, S} = gen_tcp:connect("localhost", 5555, []).
{ok,#Port<0.582>}
2> gen_tcp:send(S, <<"hello">>).
ok
我在接收部:
Received: {tcp,#Port<0.585>,<<"hello">>}
所以我想我的錯誤是在模式匹配...但在哪裏?
你收到'<<"ciao"> ''當你發送'<<"hello">>'? –
ops,nope ...現在將在問題中修復 – user601836