Bad value on output port 'tcp_inet'
Matthew Sackman
matthew@REDACTED
Mon Aug 14 17:45:54 CEST 2006
On Mon, Aug 14, 2006 at 09:49:55AM -0500, Logan, Martin wrote:
> You are using io:format to send the atom 'ok' over the wire. io:format
> writes to stdout. The docs for gen_tcp:send/2 indicate that it accepts
> the following payload type Packet = [char()] | binary(). Atom is not
> among them. Try just firing off a string and see if it fixes your
> problem.
The documentation is wrong though: gen_tcp:send/2 will actually accept
any arbitrary combination of lists, chars and binaries. Which leads me
on to ask (apologies for thread hijacking): when constructing binaries,
is a new binary actually created or is it just pointer manipulation. The
reason for asking is that this:
Binary1 = get_a_binary_somehow(...),
Binary2 = get_a_binary_somehow(...),
gen_tcp:send(Sock, <<Binary1/binary, Binary2/binary>>),
seems to be slower than this:
Binary1 = get_a_binary_somehow(...),
Binary2 = get_a_binary_somehow(...),
gen_tcp:send(Sock, [Binary1, Binary2]),
Is this likely? What actually happens in the binary construction?
Cheers,
Matthew
--
Matthew Sackman
BOFH excuse #400:
We are Microsoft. What you are experiencing is not a problem; it is an
undocumented feature.
More information about the erlang-questions
mailing list