クライアントとサーバーがあり、クライアントを使用して のような文字列を送信する"Hello"
と、サーバー側に として表示されます<<"Hello">>
。に単純に変換する方法はあり<<"Hello">>
ます"Hello"
か? 使ってみましたが、
String = io_lib:format("~p",[StringIn]),
lists:flatten(String),
しかし、それはフォーマットを次の<<"Hello">>
ように変えました[[60,60,"\"Hello\"",62,62]]
...
ちなみにコードは次のとおりです。
-module(ss1).
-compile(export_all).
-import(lists, [reverse/1]).
client() ->
{ok, Socket} = gen_tcp:connect("localhost", 2345,[binary, {packet, 4}]),
ok = gen_tcp:send(Socket, "Hello"),
receive
{tcp,Socket,String} ->
io:format("Client received = ~p~n",[String]),
io:format("Client result = ~p~n",[String]),
gen_tcp:close(Socket)
end.
server() ->
{ok, Listen} = gen_tcp:listen(2345, [binary, {packet, 4}, {reuseaddr, true}, {active, true}]),
{ok, Socket} = gen_tcp:accept(Listen),
gen_tcp:close(Listen),
loop(Socket).
loop(Socket) ->
receive
{tcp,Socket,String} ->
io:format("Server received String = ~p~n",[String]),
io:format("Server replying String = ~p~n",[String]),
gen_tcp:send(Socket, String),
loop(Socket);
{tcp_closed, Socket} ->
io:format("Server socket closed~n")
end.