diff options
author | IOhannes m zmölnig <zmoelnig@users.sourceforge.net> | 2010-03-30 09:46:56 +0000 |
---|---|---|
committer | IOhannes m zmölnig <zmoelnig@users.sourceforge.net> | 2010-03-30 09:46:56 +0000 |
commit | f89ae0b4b20758b0d2e7783a898c045546e19e34 (patch) | |
tree | a699c3450e9ea905d4de63c86ce1dbdfbb46683d /tcpclient.c | |
parent | c4836ce4a969a6493606fe1c136d654c8777d6ec (diff) |
query queue sizes
with [tcpclient] use [bang(
with [tcpserver] use [client <x>(
svn path=/trunk/externals/iem/iemnet/; revision=13312
Diffstat (limited to 'tcpclient.c')
-rw-r--r-- | tcpclient.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/tcpclient.c b/tcpclient.c index d177f89..013fb75 100644 --- a/tcpclient.c +++ b/tcpclient.c @@ -68,6 +68,31 @@ static void tcpclient_receive_callback(void *x, +static void tcpclient_info(t_tcpclient *x) +{ + // "server <socket> <IP> <port>" + // "bufsize <insize> <outsize>" + static t_atom output_atom[3]; + if(x&&x->x_connectstate) { + int sockfd = x->x_fd; + unsigned short port = x->x_port; + const char*hostname=x->x_hostname; + + int insize =iemnet__receiver_getsize(x->x_receiver); + int outsize=iemnet__sender_getsize (x->x_sender ); + + SETFLOAT (output_atom+0, sockfd); + SETSYMBOL(output_atom+1, gensym(hostname)); + SETFLOAT (output_atom+2, port); + + outlet_anything( x->x_statusout, gensym("server"), 3, output_atom); + + SETFLOAT (output_atom+0, insize); + SETFLOAT (output_atom+1, outsize); + outlet_anything( x->x_statusout, gensym("bufsize"), 2, output_atom); + } +} + /* connection handling */ static void *tcpclient_child_connect(void *w) @@ -247,6 +272,8 @@ IEMNET_EXTERN void tcpclient_setup(void) class_addmethod(tcpclient_class, (t_method)tcpclient_send, gensym("send"), A_GIMME, 0); class_addlist(tcpclient_class, (t_method)tcpclient_send); + class_addbang(tcpclient_class, (t_method)tcpclient_info); + |