help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: tcp_read is frozen when remote peer close before expected length rea


From: Jiao Xianjun
Subject: Re: tcp_read is frozen when remote peer close before expected length reached.
Date: Thu, 27 Oct 2016 08:41:37 -0700

Reproducing is quite fast:

Just try:
1. socat TCP-LISTEN:8000 - (in linux shell),
2. t0 = tcp("127.0.0.1",8000)
3. data = "" 12, 1) (so far it is OK. Then let's kill socat here)
4. data = "" 12, 1) is blocked, won't return!


On Thu, Oct 27, 2016 at 8:31 AM, Jiao Xianjun <address@hidden> wrote:
Hi,

I am trying to use tcp stuff in instrument-control-0.2.2 pkg.
It works quite fine in all cases except that:

tcp_read is blocked/hang there when remote peer close before expected length reached.


1. setup remote tcp server
2. in octave
tcp_obj = tcp('127.0.0.1', 9000, 1000);
[x, count] = tcp_read(tcp_obj, 1024, 1000);
[x, count] = tcp_read(tcp_obj, 1024, 1000);
[x, count] = tcp_read(tcp_obj, 1024, 1000);
...
if I close remote TCP server at this time, next call of tcp_read will be frozen regardless the timeout setting.
[x, count] = tcp_read(tcp_obj, 1024, 1000); <-- frozen!!!

Is it possible get my program discover this situation? Or get tcp_read back?
Because I really need my program do sth after remote TCP server down instead of just hanging.

Thanks a lot!

BR

Xianjun



reply via email to

[Prev in Thread] Current Thread [Next in Thread]