Второй аргумент должен быть Packet:
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}
...
в вашем случае {elem1,elem2}
действительно соответствует ни одному из этих типов, и вы получите сообщение об ошибке. Обычный способ отправить произвольный член является сериализовать его первым: term_to_binary(YourTerm)
и десериализации его, когда вы получаете его: binary_to_term(ReceivedBinary)
Моя проблема заключается в том, что я посылаю, что кортеж к клиенту Java, вы знаете, как я десериализую его на Java? –
Просмотрите этот http://erlang.org/doc/apps/erts/erl_ext_dist.html также http://stackoverflow.com/questions/7817213/erlang-serialization-library и http://stackoverflow.com/ Вопросы/15775554/how-to-deserialize-a-string-serialized-erlang-term-in-a-jinterface-object-in – Amiramix
Или просто выполните сериализацию и создайте пакет самостоятельно таким образом, чтобы клиент Java знал, как получить каждый элемент и интерпретировать его. Это предполагает, что каждый элемент является тем, что имеет прямое значение для клиента Java, например, не для кортежа. :-) – rvirding