gen_tcp send io error

问题描述

| 我尝试使用gen_tcp:send发送数据:
gen_tcp:send(Socket,<<\"Test message\">>).
但得到错误
** exception exit: {badarg,[{io,format,[<0.31.0>,\"~p~n\",<<\"4\">>]},{erl_eval,do_apply,5},{shell,exprs,7},eval_exprs,eval_loop,3}]}
     in function  io:o_request/3
我该如何解决? 谢谢。

解决方法

从错误消息中,我猜您已完成此操作:
io:format(\"~p~n\",gen_tcp:send(Socket,<<\"Test message\">>)).
您需要将通话包装在列表中。即
io:format(\"~p~n\",[gen_tcp:send(Socket,<<\"Test message\">>)]).
有关原因的详细信息,请参见io模块文档。