aboutsummaryrefslogtreecommitdiff
path: root/tcpclient.c
diff options
context:
space:
mode:
authorIOhannes m zmölnig <zmoelnig@users.sourceforge.net>2010-03-30 09:46:56 +0000
committerIOhannes m zmölnig <zmoelnig@users.sourceforge.net>2010-03-30 09:46:56 +0000
commitf89ae0b4b20758b0d2e7783a898c045546e19e34 (patch)
treea699c3450e9ea905d4de63c86ce1dbdfbb46683d /tcpclient.c
parentc4836ce4a969a6493606fe1c136d654c8777d6ec (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.c27
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);
+