1This part of the documentation is for the new tcp elements: 2- tcpclientsrc 3- tcpclientsink 4- tcpserversrc 5- tcpserversink 6 7TESTS 8----- 9Use these tests to test functionality of the various tcp plugins 10 11* server: nc -l -p 3000 12 client: nc localhost 3000 13 everything you type in the server is shown on the client 14 everything you type in the client is shown on the server 15 16* server: nc -l -p 3000 17 client: gst-launch tcpclientsrc protocol=none port=3000 ! fdsink fd=2 18 everything you type in the server is shown on the client 19 20* server: nc -l -p 3000 21 client: gst-launch fdsrc fd=1 ! tcpclientsink protocol=none port=3000 22 everything you type in the client is shown on the server 23 24* server: gst-launch tcpserversrc protocol=none port=3000 ! fdsink fd=2 25 client: gst-launch fdsrc fd=1 ! tcpclientsink protocol=none port=3000 26 27* server: gst-launch fdsrc fd=1 ! tcpserversink protocol=none port=3000 28 client: gst-launch tcpclientsrc protocol=none port=3000 ! fdsink fd=2 29 -> Received first buffer without caps set 30 31TODO 32---- 33- implement DNS resolution 34 35multifdsink 36----------- 37- operation: 38 - client fd gets added when "add" signal gets emitted on multifdsink 39 - signal handler creates a GstTCPClient structure, adds it to ->clients, 40 and adds the fd to ->fd_hash, then emits client-added 41 - client 42 43 - when a buffer comes in: 44 - the _render vmethod puts the buffer on the global queue 45 - and increases bytes_to_serve 46 - (currently it sets streamheaders, but since this is treated globally 47 this is wrong - clients can be at different positions in the stream) 48 49 - when a client issues a write (ie requests data): 50 - when using GDP, if no caps sent yet, send caps first, then set caps_sent 51 - if streamheader buffers, and we haven't sent yet to this client, 52 send current streamheader buffers, then set streamheader_sent 53 - send out buffers 54