D:DOS MQTT LAB v86 · FREEDOS · mTCP · NE2000
BOOTING|--:--:--
REAL DOS · REAL TCP/IP · PUBLIC MQTT BROKER

DOS 程式,自己上網。

兩台 FreeDOS 各有一張虛擬 NE2000 網卡,載入 Crynwr 封包驅動與 mTCP TCP/IP 堆疊並用 DHCP 取得位址。A.EXE 訂閱 MQTT 並在收到後 1 秒 echo;B.EXE 每次執行送出一則附時間的訊息,網頁每 5 秒執行一次 B。

C:\>

連線設定

BOOTING 2 × FREEDOS
TIP兩台 DOS 開機並取得 DHCP 位址約需 15–25 秒。點選任一 DOS 畫面可直接用鍵盤操作它。
A

機器 A BACKGROUND / LISTENER

A.EXE · 訂閱 topic · 收到後 1 秒 echo

BOOT
B

機器 B FOREGROUND / SENDER

B.EXE · 執行一次送一則訊息 · 每 5 秒執行

BOOT
LOG

觀察:A 有沒有收到 B 送的訊息

0 / 0 MATCHED
按下「開始」後,這裡會列出從兩台 DOS 畫面上讀到的事件,以及橋接器看到的 TCP 連線。
01—04

資料怎麼走

  1. DOSA.EXE / B.EXE 用 mTCP 自己做 DNS、TCP 三向交握與 MQTT 3.1.1。
  2. 網卡封包經 Crynwr NE2000 驅動送到 v86 虛擬網卡,DHCP 與 DNS(DoH)由 v86 回應。
  3. 橋接瀏覽器不能開原生 TCP,網頁把 DOS 對 1883 埠的位元組串流原封不動轉成 WSS。
  4. broker公開 MQTT broker 看到的是標準 MQTT 封包;DOS 時鐘為 UTC。