STX (Start of Text) is ASCII code point 2 (0x02), Unicode U+0002. It is a C0 control character that marked where the actual payload began on a teleprinter link — everything between SOH (0x01) and STX was header metadata, everything after STX until ETX (0x03) was the data block. In IBM BSC, DLE STX opened a transparent data block where all bytes except another DLE were treated as payload. Many embedded and POS protocols still use 0x02 as a packet-start sentinel today, framing binary messages with an STX/ETX wrapper and a trailing checksum. UTF-8 encodes it as the single byte 0x02; Unicode classifies it as Cc (Control) with the alias START OF TEXT.
unsigned char frame[] = {0x02,'P','I','N','G',0x03};// STX (0x02) starts payload; ETX ends itunsigned char lrc = 0; for (int i = 1; i < 5; i++) lrc ^= frame[i];// LRC over bytes between STX and ETX
STX (ASCII 2) marks the beginning of the actual message content, right after any header information. In the SOH→STX→data→ETX pattern, STX is the 'the real content starts here' boundary between metadata and payload.
They're bookends. STX says 'message content begins' and ETX says 'message content ends.' This framing pattern is still used in serial protocols, payment terminals, and industrial devices — the receiver knows exactly which bytes are the actual message.
Yes, extensively. Many payment terminal protocols (like those from Verifone and Ingenico) frame messages with STX at the start, the command/response data in the middle, ETX at the end, and a checksum byte after ETX. It's simple and reliable.
Ctrl+B sends STX (ASCII 2). In most modern terminals, Ctrl+B is intercepted for 'move cursor back one character' (readline) or as the tmux prefix key, so the raw byte doesn't reach applications.