| Both sides previous revisionPrevious revisionNext revision | Previous revision |
| util:sexyz [2020/12/05 11:57] – [Credits] SMBLIB not part of SEXYZ any longer digital man | util:sexyz [2023/12/22 12:16] (current) – [Overview] clarify native means 32-bit or 64-bit digital man |
|---|
| ===== Overview ===== | ===== Overview ===== |
| |
| SEXYZ was developed as a native (32-bit) TCP/socket-based replacement for the | SEXYZ was developed as a native (32-bit or 64-bit) TCP/socket-based replacement for the |
| 16-bit DOS file transfer drivers (e.g. FDSZ, CE-XYZ, etc.) that we've been | 16-bit DOS file transfer drivers (e.g. FDSZ, CE-XYZ, etc.) that we've been |
| stuck with on 32-bit BBSes for FAR too long. | stuck with on 32-bit BBSes for FAR too long. |
| <code ini> | <code ini> |
| Telnet=TRUE ; set to FALSE to change the default mode | Telnet=TRUE ; set to FALSE to change the default mode |
| TCP_NoDelay=TRUE ; disable the TCP Nagle algorithm | |
| LogLevel=INFO ; set display/log output level | LogLevel=INFO ; set display/log output level |
| | SysLog=FALSE ; log to syslog (*nix only) |
| Debug=FALSE ; enable debug logging (overrides LogLevel) | Debug=FALSE ; enable debug logging (overrides LogLevel) |
| DebugTx=FALSE ; debug transmitted characters | DebugTx=FALSE ; debug transmitted characters |
| OutbufDrainTimeout=10 ; milliseconds before auto-flush | OutbufDrainTimeout=10 ; milliseconds before auto-flush |
| ProgressInterval=1 ; interval (in seconds) of progress display | ProgressInterval=1 ; interval (in seconds) of progress display |
| MaxFileSize=0 ; maximum receive file size in bytes (0=unlimited) | MaxFileSize=0 ; maximum receive file size in bytes (0=unlimited) |
| | |
| [XMODEM] | [XMODEM] |
| MaxBlockSize=1024 ; 1024 is "true" ZMODEM, 8192 for ZMODEM-8K (ZedZap) | MaxBlockSize=1024 ; 1024 is "true" ZMODEM, 8192 for ZMODEM-8K (ZedZap) |
| MaxErrors=9 ; maximum number of consecutive errors | MaxErrors=9 ; maximum number of consecutive errors |
| RecvBufSize=0 ; specify non-zero for partial streaming receives | RecvBufSize=0 ; specify non-zero for segmented receives |
| Streaming=TRUE ; set to FALSE to disable streaming (block-at-a-time) | Streaming=TRUE ; set to FALSE to disable streaming (segmented receives) |
| CRC32=TRUE ; set to FALSE to force CRC-16 instead | CRC32=TRUE ; set to FALSE to force CRC-16 instead |
| | FullDuplex=TRUE ; set to FALSE to disable window support (on receive) |
| EscapeTelnetIAC=TRUE ; send ZDLE/ZRUB1 instead of 0xff with -telnet | EscapeTelnetIAC=TRUE ; send ZDLE/ZRUB1 instead of 0xff with -telnet |
| Escape8thBit=FALSE ; ZDLE-escape all bytes with bit-7 set | Escape8thBit=FALSE ; ZDLE-escape all bytes with bit-7 set |
| EscapeCtrlChars=FALSE ; ZDLE-escape all control characters (< 20h) | EscapeCtrlChars=FALSE ; ZDLE-escape all control characters (< 20h) |
| | MaxWindowSize=0 ; Set to non-zero number of bytes to use window management |
| | TargetWindowSize=0 ; Set to a duration (e.g. in seconds) to enable auto-adjusting window size |
| |
| [DSZLOG] | [DSZLOG] |
| Short=false ; use Micros~1 short path/filename in log (Windows) | Short=false ; use Micros~1 short path/filename in log (Windows) |
| Quotes=false ; enclose filename in "quotes" (for EleBBS) | Quotes=false ; enclose filename in "quotes" (for EleBBS) |
| | |
| | [SOCKOPTS] |
| </code> | </code> |
| |
| **Note:**\\ | **Notes:**\\ |
| Older versions of SEXYZ did not support comments on some of the ''sexy.ini'' lines shown above. | * The defaults and ''sexyz.ini'' specified values can be over-ridden via command-line options. |
| | * Older versions of SEXYZ did not support comments on some of the ''sexy.ini'' lines shown above. |
| | * See ''[[dir:ctrl]]/[[config:sockopts.ini]]'' for the Socket Options that can be set in the ''[SOCKOPTS]'' section. |
| | * Versions of SEXYZ prior to 3.0 recognized a global ''TCP_NODELAY'' key. Now that key, if it is to be set, must be in the optional ''[SOCKOPTS]'' section (for advanced uses only). |
| |
| ===== Compatibility ===== | ===== Compatibility ===== |
| * Failed: none | * Failed: none |
| |
| | |
| | ===== ZMODEM Streaming ===== |
| | The ZMODEM protocol supports multiple methods of data streaming and error recovery. SEXYZ supports the following ZMODEM streaming modes, in order of decreasing successful data transfer assurance: |
| | |
| | * **Segmented**: a "block at a time" mode, each data subpacket acknowledged by the receiver (whom can request this mode). Can be enabled when sending via the ''-s'' option or by setting ''Streaming=false'' in ''sexyz.ini''. |
| | * **Window Management**: limiting the amount of data "in-flight" between the sender and receiver using asynchronous status reporting by the receiver. Can be controlled when sending via the ''-w'' option or by setting ''MaxWindowSize'' (and optionally ''TargetWindowSize'') in ''sexyz.ini''. |
| | * **Full Streaming**: the default, subject to large send-buffering on the sending side potentially resulting in failed error-recovery or completion-acknowledgment timeouts. |
| | |
| | //Window Management// mode was added in SEXYZ v3.0 to support very asymmetric send-operations where the sender is a modern system, potentially with multiple-megabyte send-buffers, sending to a receiver that can only consume data at a rate of 115200bps (about 10KBytes/second) or less. |
| |
| ===== Support ===== | ===== Support ===== |