C
使用 C 的 telnet 實現
該程序一般是我要實現的telnet程序。
在客戶端,使用者發送其登錄名和密碼,如果正確,他開始向伺服器發送命令
在伺服器端,我檢查系統上的使用者身份驗證,如果是真的,我必須執行儲存在
passwd
文件中的預設 shell 來執行他的命令。當我嘗試使用
system
C 函式執行他的 shell 時,shell 執行然後關閉的問題,因為system()
使用fork()
andexec()
,並且在它完成後為使用者打開的 shell 被關閉。如何在我的程序中執行一個新的 shell 並保持它執行以執行以下命令?
在去那里之前,請閱讀 telnet 協議的規範(RFC 854,有關所涉及的 RFC 的完整列表,另請參閱Wikipedia 條目)。Telnet 是一個非常複雜的協議,因為它旨在連接各種作業系統的機器,包括不同的字元編碼。此外,建議不要使用它,因為它非常不安全。
如果要遠端執行命令,請使用 ssh。
你可能想從一些更簡單的東西開始做這類事情,因為這聽起來好像你是新手。也許舊的
talk / talkd
命令行程序和守護程序會更平易近人?一些有價值的資源包括 APUE 或 UNIX 環境中的高級程式 (Stevens)、UNP 或 UNIX 網路程式(也由 Stevens 編寫)和有效 TCP/IP 程式 (Snader),讓您更熟悉您將要從事的工作類型正在做,特別是 TCP/IP。