0
私はtcpソケットを使用してタプルを送信しようとしていますが、gen_tcp:send(Socket、{elem1、elem2})を使用していますが、出力ポート 'tcp_inet'に "誰も私はどのようにソケットを介してタプルを送信できますか教えてください?Erlangのtcpソケットでタプルを送信
返信いただきありがとうございます。
私はtcpソケットを使用してタプルを送信しようとしていますが、gen_tcp:send(Socket、{elem1、elem2})を使用していますが、出力ポート 'tcp_inet'に "誰も私はどのようにソケットを介してタプルを送信できますか教えてください?Erlangのtcpソケットでタプルを送信
返信いただきありがとうございます。
第二引数は、パケットでなければなりません:あなたのケース{elem1,elem2}
で
Packet = string() | binary() | HttpPacket
HttpPacket = HttpRequest
| HttpResponse
| HttpHeader
| http_eoh
| HttpError
HttpRequest = {http_request, HttpMethod, HttpUri, HttpVersion}
HttpResponse =
{http_response, HttpVersion, integer(), HttpString}
HttpHeader =
{http_header,
integer(),
HttpField,
Reserved :: term(),
Value :: HttpString}
...
は、これらのタイプのいずれにも一致しないとエラーが発生します。 binary_to_term(ReceivedBinary)
私の問題は、私はJavaクライアントへのタプルを送信してるということです
、あなたはどのように知っていますか:あなたはそれを受信したとき
term_to_binary(YourTerm)
をして、それをデシリアライズ:任意の用語を送信する通常の方法は、まず、それをシリアル化することですそれをJavaで逆シリアル化するのですか? –
http://erlang.org/doc/apps/erts/erl_ext_dist.html http://stackoverflow.com/questions/7817213/erlang-serialization-libraryおよびhttp://stackoverflow.com/をご覧ください。質問/ 15775554/jitterface-object-in-string-serialized-erlang-to-jinterfaceオブジェクトのデシリアライズ方法 – Amiramix
または、シリアル化を行い、Javaクライアントがどのようにしてこのようにパケットを構築するか各要素を取得して解釈します。これは、各要素がJavaクライアントに直接的な意味を持つもの、例えばタプルではないものと仮定しています。 :-) – rvirding