#N canvas 4 103 1272 816 12;
#X msg 39 -10 print;
#X floatatom 404 376 5 0 0 0 - - -;
#X floatatom 428 426 5 0 0 0 - - -;
#X obj 452 377 unpack 0 0 0 0;
#X floatatom 452 400 3 0 0 0 - - -;
#X floatatom 483 400 3 0 0 0 - - -;
#X floatatom 515 400 3 0 0 0 - - -;
#X floatatom 549 400 3 0 0 0 - - -;
#X text 409 399 from;
#X text 320 376 connections;
#X obj 381 501 print received;
#X msg 135 86 client 1 1 2 3;
#X msg 63 14 broadcast 1 2 3;
#X text 91 -9 list of connections;
#X text 186 14 send to all clients;
#X text 358 426 on socket;
#X msg -11 -60 send 504 1 2 3;
#X text 100 -65 send to client on socket 504;
#X msg 647 -209 client 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
18 19;
#X msg 647 -186 client 1 20 21 22 23 24 25 26 27 28 29 30 31 32 33
34 35 36 37 38 39;
#X msg 647 -148 client 1 40 41 42 43 44 45 46 47 48 49 50 51 52 53
54 55 56 57 58 59;
#X msg 647 -110 client 1 60 61 62 63 64 65 66 67 68 69 70 71 72 73
74 75 76 77 78 79;
#X msg 647 -72 client 1 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
95 96 97 98 99;
#X msg 647 -34 client 1 100 101 102 103 104 105 106 107 108 109 110
111 112 113 114 115 116 117 118 119;
#X msg 647 4 client 1 120 121 122 123 124 125 126 127 138 139 140 141
142 143 144 145 146 147 148 149;
#X msg 647 42 client 1 150 151 152 153 154 155 156 157 158 159 160
161 162 163 164 165 166 167 168 169;
#X msg 647 80 client 1 170 171 172 173 174 175 176 177 178 179 180
181 182 183 184 185 186 187 188 189;
#X msg 647 118 client 1 190 191 192 193 194 195 196 197 198 199 200
201 202 203 204 205 206 207 208 209;
#X msg 647 156 client 1 210 211 212 213 214 215 216 217 218 219 220
221 222 223 224 225 226 227 228 229;
#X msg 647 194 client 1 230 231 232 233 234 235 236 237 238 239 240
241 242 243 244 245 246 247 248 249;
#X msg 647 232 client 1 250 251 252 253 254 255;
#X obj 40 -177 openpanel;
#X obj 40 -196 bng 15 250 50 0 empty empty choose_a_file 17 7 0 10
-24198 -241291 -1;
#X text 24 -157 ...any file;
#X msg -108 -157 client 1 \$1;
#X msg 14 -35 10 1 2 43;
#X text 98 -48 'send' prefix is optional;
#X text 88 -31 (the first number is socket number);
#X msg -41 -90 disconnectsocket \$1;
#X msg -84 -133 disconnectclient \$1;
#X obj 647 257 s toserver;
#X obj 376 327 r toserver;
#X floatatom 143 -172 5 0 0 0 - - -;
#X obj 121 -153 f;
#X obj 121 -172 bng 15 250 50 0 empty empty empty 17 7 0 10 -258699
-241291 -1;
#X floatatom 185 -129 5 0 0 0 - - -;
#X obj 163 -110 f;
#X obj 163 -129 bng 15 250 50 0 empty empty empty 17 7 0 10 -258699
-241291 -1;
#X text -109 -110 disconnect by socket or client number;
#X text 488 351 argument is port number;
#X text 52 353 Received messages are output as lists of bytes;
#X text -9 457 ***WARNING*** Attempting to print long messages can
hang pd!;
#X obj 381 479 spigot;
#X obj 420 459 tgl 15 0 empty empty enable_print 17 7 0 10 -24198 -258699
-45076 0 1;
#X msg 159 110 dump \$1;
#X obj -17 95 tgl 15 0 empty empty enable_dump 17 7 0 10 -4034 -257985
-1 0 1;
#X text -85 45 dump received;
#X text -85 61 characters to main;
#X text -85 76 window in hexdump;
#X text -85 92 format:;
#X obj 381 352 tcpserver 9997;
#X msg -132 -181 client 1 test.txt;
#X text 647 -234 [tcpserver] sends and receives bytes on [0...255]
;
#X text 158 -217 [tcpserver] waits for clients to connect to its port.
;
#X text -137 -202 send a file to client 1;
#X msg 183 134 client 1 72 101 108 108 111 13 10;
#X floatatom 638 437 9 0 0 0 - - -;
#X obj 770 396 print status;
#X floatatom 598 460 5 0 0 0 - - -;
#X text 528 459 to_client;
#X msg 111 62 client;
#X msg 88 39 client 1;
#X text 156 38 get state of client 1;
#X text 249 86 send (binary) 1 2 3 to client 1;
#X floatatom 772 529 5 0 0 0 - - -;
#X symbolatom 804 502 20 0 0 0 - - -;
#X floatatom 741 502 5 0 0 0 - - -;
#X text 705 436 bytes;
#X text 598 436 sent;
#X msg 209 160 clientbuf 1 65536;
#X obj 741 478 unpack 0 0 s 0;
#X floatatom 836 550 7 0 0 0 - - -;
#X text 681 550 length of send buffer:;
#X text 721 528 socket:;
#X text 690 501 client:;
#X text 781 501 ip:;
#X text 339 159 set send-buffer size for client 1;
#X text 163 62 get state of all clients (list on right outlet);
#X obj 598 411 unpack 0 0 0;
#X floatatom 679 478 5 0 0 0 - - -;
#X text 609 477 on_socket;
#X msg 233 184 send;
#X msg 258 209 1156;
#X text 276 183 output 'client' message for all sockets;
#X text 298 209 output 'client' message for socket 1156;
#X msg 283 234 unblock;
#X obj 598 372 route sent client blocked;
#X text -143 233 If sending too many messages blocks the system \,
tcpserver will stop sending until it receives an unblock message;
#X obj 712 419 print blocked;
#N canvas 530 81 494 344 META 0;
#X text 12 225 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
Wilkes for Pd version 0.42.;
#X text 12 205 AUTHOR Martin Peach;
#X text 12 25 LICENSE GPL v2 or later;
#X text 12 5 KEYWORDS control network;
#X text 12 45 DESCRIPTION wait for clients to connect to its port;
#X text 12 65 INLET_0 float list client disconnectclient disconnectsocket
send print broadcast dump clientbuf unblock;
#X text 12 105 OUTLET_0 anything;
#X text 12 125 OUTLET_1 float;
#X text 12 145 OUTLET_2 float;
#X text 12 165 OUTLET_3 list;
#X text 12 185 OUTLET_4 sent client blocked;
#X restore 899 458 pd META;
#X msg 354 305 port 12345;
#X text 436 304 change listening port (only if no connections are active)
;
#X msg 332 283 verbosity \$1;
#X obj 332 263 hradio 15 1 0 4 empty empty empty 0 -8 0 10 -1 -4034
-1 0;
#X text 425 281 set verbosity level;
#X text -9 536 2014/02/13 Martin Peach;
#X connect 0 0 60 0;
#X connect 3 0 4 0;
#X connect 3 1 5 0;
#X connect 3 2 6 0;
#X connect 3 3 7 0;
#X connect 11 0 60 0;
#X connect 12 0 60 0;
#X connect 16 0 60 0;
#X connect 18 0 40 0;
#X connect 19 0 40 0;
#X connect 20 0 40 0;
#X connect 21 0 40 0;
#X connect 22 0 40 0;
#X connect 23 0 40 0;
#X connect 24 0 40 0;
#X connect 25 0 40 0;
#X connect 26 0 40 0;
#X connect 27 0 40 0;
#X connect 28 0 40 0;
#X connect 29 0 40 0;
#X connect 30 0 40 0;
#X connect 31 0 34 0;
#X connect 32 0 31 0;
#X connect 34 0 60 0;
#X connect 35 0 60 0;
#X connect 38 0 60 0;
#X connect 39 0 60 0;
#X connect 41 0 60 0;
#X connect 42 0 43 1;
#X connect 43 0 39 0;
#X connect 44 0 43 0;
#X connect 45 0 46 1;
#X connect 46 0 38 0;
#X connect 47 0 46 0;
#X connect 52 0 10 0;
#X connect 53 0 52 1;
#X connect 54 0 60 0;
#X connect 55 0 54 0;
#X connect 60 0 52 0;
#X connect 60 1 1 0;
#X connect 60 2 2 0;
#X connect 60 3 3 0;
#X connect 60 4 96 0;
#X connect 61 0 60 0;
#X connect 65 0 60 0;
#X connect 70 0 60 0;
#X connect 71 0 60 0;
#X connect 79 0 60 0;
#X connect 80 0 76 0;
#X connect 80 1 74 0;
#X connect 80 2 75 0;
#X connect 80 3 81 0;
#X connect 88 0 68 0;
#X connect 88 1 66 0;
#X connect 88 2 89 0;
#X connect 91 0 60 0;
#X connect 92 0 60 0;
#X connect 95 0 60 0;
#X connect 96 0 88 0;
#X connect 96 1 80 0;
#X connect 96 2 98 0;
#X connect 96 3 67 0;
#X connect 100 0 60 0;
#X connect 102 0 60 0;
#X connect 103 0 102 0;
