Erlang socket client

klacke@REDACTED klacke@REDACTED
Wed Jun 1 20:55:51 CEST 2005


On Wed, Jun 01, 2005 at 01:53:13PM -0400, tty@REDACTED wrote:
> Thanks,
> 
> > will CRNL terminate each line. Try that in the erlang code
> > as well.
> > 
> >  gen_tcp:send(Fd, "ati\r\n")
> > 
> > 
> 
> That did it. Its still flaky with responses (not flushing the recieve buffer) but I can live with it for now since its meant as a proof of concept demo. 
> 


Yes, and it's always going to be flaky unless you somehow instruct
erlang how/when to deliver data to you.
Erlang cannot know how you want data delivered to you from
the socket unless you tell it.

Thus, the server ships CRNL terminated lines to you, thus you
should pass the option:

gen_tcp:connect(....[{packet, line} ...])

That way, you'll get a line delivered to your process
as soon as a full CRNL terminated line is read by the driver.

Readup in 

# man -a inet

on how erlang socket line mode works


/klacke


-- 
Claes Wikstrom                        -- Caps lock is nowhere and
http://www.hyber.org                  -- everything is under control          



More information about the erlang-questions mailing list