C

使用 C 的 telnet 實現

  • March 14, 2013

該程序一般是我要實現的telnet程序。

在客戶端,使用者發送其登錄名和密碼,如果正確,他開始向伺服器發送命令

在伺服器端,我檢查系統上的使用者身份驗證,如果是真的,我必須執行儲存在passwd文件中的預設 shell 來執行他的命令。

當我嘗試使用systemC 函式執行他的 shell 時,shell 執行然後關閉的問題,因為system()使用fork()and exec(),並且在它完成後為使用者打開的 shell 被關閉。

如何在我的程序中執行一個新的 shell 並保持它執行以執行以下命令?

在去那里之前,請閱讀 telnet 協議的規範(RFC 854,有關所涉及的 RFC 的完整列表,另請參閱Wikipedia 條目)。Telnet 是一個非常複雜的協議,因為它旨在連接各種作業系統的機器,包括不同的字元編碼。此外,建議不要使用它,因為它非常不安全。

如果要遠端執行命令,請使用 ssh。

你可能想從一些更簡單的東西開始做這類事情,因為這聽起來好像你是新手。也許舊的talk / talkd命令行程序和守護程序會更平易近人?一些有價值的資源包括 APUE 或 UNIX 環境中的高級程式 (Stevens)、UNP 或 UNIX 網路程式(也由 Stevens 編寫)和有效 TCP/IP 程式 (Snader),讓您更熟悉您將要從事的工作類型正在做,特別是 TCP/IP。

引用自:https://unix.stackexchange.com/questions/67829