|
使用者線上 talk, chat, 送 message
[ 基本管理 ] 在 (T)alk 選單的 (U)ser 選項顯示時, 站長可以有幾個特殊功能.
以 [k/K] 這兩個按鍵可以將發呆過久的使用者 kick out.
以 [r/R] 這兩個按鍵可以看使用者的真實身份.
[H] 鍵可隱身.
其它按鍵功能可以 [h] 鍵查詢.
[ 進階管理 ] 每個使用者在系統上都是一個 process, 兩個 process 之間要互相通訊, 有個先決條件, 我們必須能得知這個使用者是否在線上. 為達到這個目的, 系統必需 maintain 第三個 shared memory. 這個 shared memory 的內容是線上使用者的基本資料, 而且隨著使用者的進出而更改其內容.
talk, chat, 以及 message, 這三種方式看起來很類似, 可是它們的作法完全不同.
talk 是以在兩個 user process 間開 socket 的方式完成的. chat 的作法則是, BBS 系統會跑一個 chat deamon, user process 以和 chat deamon 溝通的方式達成和其它的 user process 交換信息. 至於 message, 因為通常 message 只是一句話, 為了一句話就開個 socket 實在不划算, 因此, 它是以 file 來完成的. Sender 端在 Receiver 的目錄下建立一個 file, 裡頭存放著這次 message 的內容, 並且以 kill() 這個 system call 來通知 Receiver process. Receiver process 收到後檢視自己的目錄下存放有 message 的這個 file. 於是 Receiver 便收到了來自 Sender 端的 message.
|
|