Linux 系统应用编程——网络编程(常用命令解析)
1、telnet
????? Telnet協議是TCP/IP協議族中的一員,是Internet遠程登陸服務的標準協議和主要方式。它為用戶提供了在本地計算機上完成遠程主機工作的能力。在終端使用者的電腦上使用telnet程序,用它連接到服務器。終端使用者可以在telnet程序中輸入命令,這些命令會在服務器上運行,就像直接在服務器的控制臺上輸入一樣。可以在本地就能控制服務器。
當我們使用Telnet登錄進入遠程計算機系統時,事實上啟動了兩個程序:一個是Telnet客戶程序,運行在本地主機上;另一個是Telnet服務器程序,它運行在要登錄的遠程計算機上。
本地主機上的Telnet客戶程序主要完成以下功能:
●建立與遠程服務器的TCP聯接。
●從鍵盤上接收本地輸入的字符。
●將輸入的字符串變成標準格式并傳送給遠程服務器。
●從遠程服務器接收輸出的信息。
●將該信息顯示在本地主機屏幕上。
遠程主機的“服務”程序通常被昵稱為“精靈”,它平時不聲不響地守候在遠程主機上,一接到本地主機的請求,就會立馬活躍起來,并完成以下功能:
●通知本地主機,遠程主機已經準備好了。
●等候本地主機輸入命令。
●對本地主機的命令作出反應(如顯示目錄內容,或執行某個程序等)。
●把執行命令的結果送回本地計算機顯示。
●重新等候本地主機的命令。
下面我們利用Telnet 測試我們自己所寫的TCP服務器,下面是個TCP服務器的demo,實現"echo” 功能。
我們可以看到主機IP地址為192.168.3.51,端口號PORT為8888,正在監聽中,
這里我們執行telnet命令
可以看到連接成功,下面我們可以向服務器端發送數據
這里TCP服務器實現的功能是 echo ,就是在客戶端輸入數據,會顯示在下方,圖中可以看到效果,下面是服務器端顯示
?
2、lsof
lsof最基本的功能:
???lsof -i:(端口)查看這個端口有那些進程在訪問,比如我們上面正在監聽的8888端口
這里可以看到我們的TCP服務器和Telnet 都在訪問這個端口號。
?
3、netstat
Netstat 命令用于顯示各種網絡相關信息,如網絡連接,路由表,接口狀態 (Interface Statistics),masquerade 連接,多播成員 (Multicast Memberships) 等等。
常見參數
-a (all)顯示所有選項,默認不顯示LISTEN相關
-t (tcp)僅顯示tcp相關選項
-u (udp)僅顯示udp相關選項
-n 拒絕顯示別名,能顯示數字的全部轉化成數字。
-l 僅列出有在 Listen (監聽) 的服務狀態
-p 顯示建立相關鏈接的程序名
-r 顯示路由信息,路由表
-e 顯示擴展信息,例如uid等
-s 按各個協議進行統計
-c 每隔一個固定時間,執行該netstat命令。
提示:LISTEN和LISTENING的狀態只有用-a或者-l 才能看到
?
1. 列出所有端口 (包括監聽和未監聽的)
? 列出所有端口 netstat -a
?
2. 列出所有處于監聽狀態的 Sockets
? 只顯示監聽端口 netstat -l
可以看到端口8888處于監聽狀態
總結
以上是生活随笔為你收集整理的Linux 系统应用编程——网络编程(常用命令解析)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 系统关机助手
- 下一篇: Linux V4L2驱动框架分析之(一)