TCP mode: - :port bind to local port and await connection - hostname:port connect to remote machine/port - hostname:port:hostname:port connect to remote machine/port 192.168.175.48 = 816818368 audio mode option parsing TCP/IP socket functionality: - good ifdef's to get rid of it - good ifdef's to get rid of hostname resolution - specification for local binding - Manpage - usage() nicht gegen -k linken wenn audio support nicht drin zlib: - z <compressionlevel> negative compressionlevel = bzip2 compressionlevel = - decompress (bzip2 auto-detection) %% Current mode durrently doesn't speed up, I probably overlooked some obvious synchronization. "Since first transfer" should also exclude the last write (or at least the close, important on tapes). Support -B option to set blocksize for writes, if not already set by -b, which will continue to set both unless -B has been used before. In concurrent mode, who is going to report what? Parent is easier handling-wise, but it cannot report output throughput without having an upward pipe. But we may need such a pipe soon anyway. Don't use the required blocksize for the pipe in concurrent mode. This can easily be done if read and write block size are specified seperately and then just set obs in the parent and ibs in the child to a useful value (maybe even to be specified by the user, cause it's a space vs. number of syscalls tradeoff). Throughput report not only as 'since program started', but also as 'since first read/write succeeded' (also subsctract the amount of data this syscall took) and 'only take time spent on incoming or outgoing side into account'. poll/select: - poll nur auf lesefd - danach haben wir einen (teil-)block 1) wenn im puffer noch platz fuer einen block, dann poll auf beide fd wenn nicht, dann poll nur auf schreibfd - wenn wir lesefd zurueckkriegen, dann puffer um diesen Block erweitern - wenn wir schreibfd zurueckkriegen, dann den pointer im buffer erhoehen, um das was wir weggeschrieben haben. - wenn kein Platz mehr zum lesen, dann leerschreiben. Wenn leergeschrieben und kein platz mehr zum lesen, dann reset von curread und curwrite Manpage: -S -c 4 -w