java 網絡編程探討

畢業有一年多了,大學的時候上過網絡課程,但我一直認爲:網絡技術是最難得了,讓我覺得無所適從。大四畢業設計的時候是一個ftp服務器,讓我對網絡、套接字有了新的認識。還有sniffer工具,加深了我對網絡的理解。
昨天遇到一個問題,我的朋友唐磊從事網絡方面的工作,昨天在qq上聊到了一個工具,掃描一個網段的主機的所有的端口,以便發現些問題展開攻擊。於是我就希望實現一個具有類似功能的工具。
在實現方面需要兩個步驟:一個是先利用ping找到所有打開的主機,然後把結果記錄下來,最後針對每個主機,對端口進行逐一的掃描。從功能上來說後者很容易用java實現,只要利用socket.connect就可以做到,但是如果想實現ping功能呢?經過我多方努力,發現java沒有ping的實現,更爲嚴重的是,java實現不了ping!ping使用的是icmp協議,而icmp協議是ip層的。而Java只有實現了tcp/udp協議。tcp協議對應的是:socket;udp對應的是DatagramSocket。
綜上所述:java比較適合實現應用層協議,比如:ftp/smtp之類。而對於傳輸層、網絡連接層就愛莫能助了。

歡迎拍磚~~
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章