【摘要】 介紹網(wǎng)絡(luò)編程的基礎(chǔ)指令、關(guān)閉防火墻、配置網(wǎng)卡、配置虛擬機(jī)、完成基本網(wǎng)絡(luò)編程測(cè)試。
剩下: Shell腳本和socket網(wǎng)絡(luò)編程
虛擬機(jī): 虛擬計(jì)算機(jī)環(huán)境、。
Linux系統(tǒng)編程需要掌握的知識(shí):
1.?操作系統(tǒng)環(huán)境搭建(虛擬機(jī)+Linux操作系統(tǒng))
2.?常用的指令(文件目錄管理、網(wǎng)絡(luò)管理、磁盤(pán)管理)
3.?文件(fopen系列、open系列)和目錄操作
4.?Shell腳本編程
5.?進(jìn)程和線(xiàn)程編程(并發(fā)): 多路IO操作: poll機(jī)制、select機(jī)制、epoll機(jī)制
6.?網(wǎng)絡(luò)編程
7.?常見(jiàn)的設(shè)備操作: 攝像頭控制
學(xué)習(xí)Linux系統(tǒng)編程: Linux應(yīng)用和驅(qū)動(dòng)開(kāi)發(fā)、Linux運(yùn)維開(kāi)發(fā)。
任務(wù)1: Linux下網(wǎng)絡(luò)編程
1.1 協(xié)議概念介紹
網(wǎng)絡(luò)傳輸分協(xié)議,底層常見(jiàn)協(xié)議: TCP、UDP協(xié)議。
網(wǎng)絡(luò)數(shù)據(jù)如何傳輸?
![pYYBAGMlP76AWB2UAACUV8oXcLQ577.png](https://file.elecfans.com//web2/M00/6A/F1/pYYBAGMlP76AWB2UAACUV8oXcLQ577.png)
??協(xié)議詞匯
IIC、SPI、CAN、485、8080、USART(串口)、TCP/IP協(xié)議…….
??TCP/IP協(xié)議: 傳輸數(shù)據(jù)是分包進(jìn)行發(fā)送。(數(shù)據(jù)包: 封包、解包)
問(wèn)題: 有一個(gè)路由器可以上網(wǎng)(外網(wǎng)只有一根網(wǎng)線(xiàn)),路由器可以擴(kuò)展網(wǎng)絡(luò)(4根網(wǎng)線(xiàn)),4根網(wǎng)絡(luò)同時(shí)接了4臺(tái)電腦。
每臺(tái)電腦在進(jìn)行網(wǎng)絡(luò)應(yīng)用操作(QQ聊天、瀏覽器文件下載、玩游戲……)
端口號(hào): 表示每一臺(tái)電腦上的具體的一個(gè)應(yīng)用程序。
IP地址: 表示每一個(gè)電腦的地址(唯一地址)。
訪(fǎng)問(wèn)一臺(tái)電腦具體應(yīng)用的地址表示方法: :<端口號(hào)> 192.168.1.123:8080地址>
1.2 IP地址介紹
局域網(wǎng)IP地址: 常見(jiàn)都是192開(kāi)頭: 192.xx.xx.xx
廣域網(wǎng)IP地址(公網(wǎng)IP): xx.xx.xx.xx 比如: 登錄QQ。
1.3 TCP協(xié)議和UDP協(xié)議區(qū)別:
TCP協(xié)議: 點(diǎn)對(duì)點(diǎn)協(xié)議。 比如: 打電話(huà) (3次握手過(guò)程)。
(HTTP協(xié)議、FTP協(xié)議……)
UDP協(xié)議: 廣播協(xié)議。 比如: 廣播電臺(tái)。實(shí)時(shí)效率比較高。(數(shù)據(jù)不可靠)
TCP協(xié)議模型: (C/S模型) (客戶(hù)端+服務(wù)器模型)
TCP協(xié)議通信:是針對(duì)服務(wù)器和客戶(hù)端之間。
注意: 客戶(hù)端和客戶(hù)端不能直接通信、服務(wù)器和服務(wù)器直接不能直接通信。
電腦上的QQ軟件: QQ客戶(hù)端,服務(wù)器就在騰訊公司。
![poYBAGMlP76AMGQLAAAqEXZtYWg825.png](https://file.elecfans.com//web2/M00/6A/59/poYBAGMlP76AMGQLAAAqEXZtYWg825.png)
1.4 學(xué)習(xí)Linux系統(tǒng)基本網(wǎng)絡(luò)操作指令
指令1: ifconfig <參數(shù)>
用法: ifconfig 查看已經(jīng)啟動(dòng)的網(wǎng)卡信息(IP地址)。
![pYYBAGMlP7-AP4aCAAHIH0FN7To739.png](https://file.elecfans.com//web2/M00/6A/F1/pYYBAGMlP7-AP4aCAAHIH0FN7To739.png)
1.?手動(dòng)設(shè)置網(wǎng)卡IP地址: #ifconfig eth0 192.168.1.100
2.開(kāi)啟網(wǎng)卡: # ifup eth0
3. 關(guān)閉網(wǎng)卡: # ifdown eth0
4. 查看全部網(wǎng)卡: # ifconfig -a (包括關(guān)閉未啟動(dòng)的網(wǎng)卡)
5. 關(guān)閉防火墻的圖形設(shè)置頁(yè)面: # setup
![poYBAGMlP8KAPxF5AADu018dJDw032.png](https://file.elecfans.com//web2/M00/6A/59/poYBAGMlP8KAPxF5AADu018dJDw032.png)
1.5 網(wǎng)卡自動(dòng)分配IP地址的操作
![pYYBAGMlP8KAeZDMAAHgb-jd2SQ282.png](https://file.elecfans.com//web2/M00/6A/F1/pYYBAGMlP8KAeZDMAAHgb-jd2SQ282.png)
![poYBAGMlP8OAWI2lAADJWmv4bI4625.png](https://file.elecfans.com//web2/M00/6A/59/poYBAGMlP8OAWI2lAADJWmv4bI4625.png)
![pYYBAGMlP8SAb_o5AAFAjWJ4DC0777.png](https://file.elecfans.com//web2/M00/6A/F1/pYYBAGMlP8SAb_o5AAFAjWJ4DC0777.png)
![poYBAGMlP8WAMR8eAAHzJf2pGVA911.png](https://file.elecfans.com//web2/M00/6A/59/poYBAGMlP8WAMR8eAAHzJf2pGVA911.png)
![pYYBAGMlP8aADrAUAADC8nq8-qQ091.png](https://file.elecfans.com//web2/M00/6A/F1/pYYBAGMlP8aADrAUAADC8nq8-qQ091.png)
??測(cè)試網(wǎng)絡(luò)是否暢通:
![poYBAGMlP8eAYqYoAADNx1GDTIQ729.png](https://file.elecfans.com//web2/M00/6A/59/poYBAGMlP8eAYqYoAADNx1GDTIQ729.png)
![pYYBAGMlP8eAPfpjAADgPAONVfY420.png](https://file.elecfans.com//web2/M00/6A/F1/pYYBAGMlP8eAPfpjAADgPAONVfY420.png)
1.6 常用的TCP協(xié)議調(diào)試軟件使用
![poYBAGMlP8eAEGnjAABPfVKrl2g692.png](https://file.elecfans.com//web2/M00/6A/59/poYBAGMlP8eAEGnjAABPfVKrl2g692.png)
任務(wù)2: TCP協(xié)議網(wǎng)絡(luò)編程
在Linux系統(tǒng)下所有的設(shè)備操作都可以看成文件操作。
網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)與本地計(jì)算機(jī)的數(shù)據(jù)傳輸存儲(chǔ)的方式不一樣: 小端和大端
??TCP協(xié)議服務(wù)器搭建過(guò)程
1.?創(chuàng)建套接字: socket
2.?綁定端口號(hào): bind (創(chuàng)建服務(wù)器)
3.?設(shè)置監(jiān)聽(tīng)的數(shù)量,最大可以連接的客戶(hù)端數(shù)量。
4.?阻塞方式等待客戶(hù)端連接
5.?實(shí)現(xiàn)數(shù)據(jù)通信。 (客戶(hù)端連接成功之后)
??TCP協(xié)議客戶(hù)端搭建過(guò)程
1.?創(chuàng)建套接字
2.?連接指定的服務(wù)器
3.?實(shí)現(xiàn)數(shù)據(jù)通信(成功的連接服務(wù)器)
??將16位數(shù)量從主機(jī)字節(jié)順序轉(zhuǎn)換為網(wǎng)絡(luò)字節(jié)順序。
# define HTONS(n) (u16_t)((((u16_t) (n)) << 8) | (((u16_t) (n)) >> 8)) |
?? 練習(xí)
1.?重新編寫(xiě)代碼,實(shí)現(xiàn)客戶(hù)端與服務(wù)器之間基本通信。
2.?實(shí)現(xiàn)文件傳輸:
比如: 服務(wù)器給客戶(hù)端發(fā)送文件 (下載)
客戶(hù)端給服務(wù)器發(fā)送文件 (上傳)
(1)?在本地計(jì)算機(jī)上測(cè)試
(2)?與局域網(wǎng)內(nèi)其他計(jì)算機(jī)之間進(jìn)行測(cè)試。 考慮網(wǎng)絡(luò)、丟包問(wèn)題。
擴(kuò)展練習(xí):
1.?實(shí)現(xiàn)目錄傳輸(只寫(xiě)一級(jí)目錄)。
2.?實(shí)現(xiàn)目錄內(nèi)文件的同步 (公交車(chē)站臺(tái)、地鐵里廣告機(jī)(視頻播放機(jī)))
安裝編譯器
![pYYBAGMlP8eAcK-jAABd1EuECR4703.png](https://file.elecfans.com//web2/M00/6A/F1/pYYBAGMlP8eAcK-jAABd1EuECR4703.png)
解壓命令: # tar xvf sublime_text_3_build_3143_x32.tar.bz2
??在任意目錄下想要運(yùn)行這個(gè)編輯軟件,需要添加環(huán)境變量。
1.?# vim /etc/profile 打開(kāi)配置文件 (翻到最后一行) 進(jìn)入插入模式下,寫(xiě)上以下代碼,再保存退出: export PATH=/work/test/sublime_text_3:$PATH 2.?立即生效環(huán)境變量的命令(只是當(dāng)前運(yùn)行的終端有效) # source /etc/profile 3.?永久生效。重啟系統(tǒng) 或者 注銷(xiāo)用戶(hù)重新登錄 |
第二個(gè)軟件安裝: # rpm -ivh UltraEdit-16.1-0.22.i386.rpm
![poYBAGMlP8eAdCyLAACp5k1xgLg427.png](https://file.elecfans.com//web2/M00/6A/59/poYBAGMlP8eAdCyLAACp5k1xgLg427.png)
使用軟件: # uex 123.c
??破解方法:
方法1(不改變軟件配置): UltraEdit for linux 30天無(wú)限試用的方法: 1. 查找uex.conf文件,該文件是UltraEdit的配置文件 示例:[root@wbyq sd_fuse]# find / -name uex.conf 查找出的結(jié)果:/root/.idm/uex/uex.conf 2. 刪除uex.conf文件 示例:[root@wbyq sd_fuse]# rm /root/.idm/uex/uex.conf 3. 刪除記錄時(shí)間的文件 [root@wbyq ~]# rm /tmp/*.spl -rfdv 4. 重新運(yùn)行uex命令即可使用 方法2(改變軟件配置,全部重新初始化): UltraEdit for linux 30天無(wú)限試用的方法: 1. 查找uex.conf文件,該文件是UltraEdit的配置文件 示例:[root@wbyq sd_fuse]# find / -name uex.conf 查找出的結(jié)果:/root/.idm/uex/uex.conf 2. 刪除/root/.idm目錄 示例:[root@wbyq sd_fuse]# rm /root/.idm -rf
3. 刪除記錄時(shí)間的文件 [root@wbyq ~]# rm /tmp -rf
4. 重新運(yùn)行uex命令即可使用30天 方法3: UltraEdit for linux 30天無(wú)限試用的方法:(快速精簡(jiǎn),不改變之前的軟件配置) rm -rfd ~/.idm/uex rm -rf ~/.idm/*.spl rm -rf /tmp/*.spl 軟件下載地址: http://www.ultraedit.com/downloads/uex.html |
-
協(xié)議
+關(guān)注
關(guān)注
2文章
606瀏覽量
39355 -
TCP
+關(guān)注
關(guān)注
8文章
1381瀏覽量
79344 -
網(wǎng)絡(luò)編程
+關(guān)注
關(guān)注
0文章
72瀏覽量
10134
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
TCP協(xié)議的性能測(cè)試與評(píng)估方法
TCP協(xié)議在網(wǎng)絡(luò)通信中的應(yīng)用
百問(wèn)FB網(wǎng)絡(luò)編程 - 網(wǎng)絡(luò)編程簡(jiǎn)介
飛凌嵌入式ElfBoard ELF 1板卡-網(wǎng)絡(luò)編程示例之網(wǎng)絡(luò)基礎(chǔ)知識(shí)
什么是socket編程 socket與tcp/ip協(xié)議的關(guān)系
TCP協(xié)議是什么
Linux網(wǎng)絡(luò)協(xié)議棧的實(shí)現(xiàn)
![<b class='flag-5'>Linux</b><b class='flag-5'>網(wǎng)絡(luò)</b><b class='flag-5'>協(xié)議</b>棧的實(shí)現(xiàn)](https://file1.elecfans.com/web2/M00/06/C6/wKgaombfpT-AeVQcAACjr17dpiQ190.png)
一文了解TCP/IP協(xié)議
![一文了解<b class='flag-5'>TCP</b>/IP<b class='flag-5'>協(xié)議</b>](https://file1.elecfans.com/web2/M00/01/F4/wKgaomazJM6AUmLUAAAopE8gQog159.png)
華納云:TCP IP協(xié)議的發(fā)展和優(yōu)勢(shì)
TCP IP協(xié)議屬性設(shè)置中的IP配置
論TCP協(xié)議中的擁塞控制機(jī)制與網(wǎng)絡(luò)穩(wěn)定性
網(wǎng)絡(luò)傳輸協(xié)議有幾種?
深入理解Linux網(wǎng)絡(luò)協(xié)議
![深入理解<b class='flag-5'>Linux</b><b class='flag-5'>網(wǎng)絡(luò)</b><b class='flag-5'>協(xié)議</b>](https://file1.elecfans.com/web2/M00/C7/69/wKgaomYKUuiANhG6AAA-loCMbGU699.png)
Linux網(wǎng)絡(luò)編程
![<b class='flag-5'>Linux</b><b class='flag-5'>網(wǎng)絡(luò)</b><b class='flag-5'>編程</b>](https://file1.elecfans.com/web2/M00/C4/AC/wKgZomX2ka2AJV7kAAP5n4qgJjM308.png)
通信必備知識(shí)!TCP與UDP協(xié)議介紹及使用
![通信必備知識(shí)!<b class='flag-5'>TCP</b>與UDP<b class='flag-5'>協(xié)議</b><b class='flag-5'>介紹</b>及使用](https://file.elecfans.com/web2/M00/3E/6A/pYYBAGJhBGGAGyDYAACBPQuBZQI711.png)
評(píng)論