TCP網絡通信程式設計,多線程(代碼見附錄)
實驗目的:
實作PC與物聯網試驗箱間傳輸檔案,PC作為用戶端,在PC上輸入一個檔案名,通過編制的程式上傳到物
聯網試驗箱上。傳輸協定采用TCP協定。在PC的linux系統上運作client,在物聯網試驗箱的linux系統上運
行server。
實驗步驟:
(1)在PC端打開虛拟機(unbuntu系統),将實驗闆接上電源并使用網線将開發闆與PC相連。
(2)使用指令ifconfig eth0 192.168.1.21設定PC端IP位址,
并在實驗闆上的設定中設定開發闆端IP為192.168.1.20.
(3)在PC端使用指令telnet 192.168.1.20連接配接至開發闆
(4)開啟新的終端視窗,将編寫好的pthreadserver.c通過pc指令複制到develop目錄中,并使用
指令arm-linux-gcc –o pthreadserver pthreadserver.c –lpthread對伺服器端程式進行交叉編譯.
(5)接着在開發闆中使用指令:mount –o nolock –t nfs192.168.1.21:/home/unsp/develop/ /mnt,
挂載PC端的develop目錄至開發闆的mnt目錄下。
(6)在開發闆的home目錄下使用指令:mkdirserver,建立一個伺服器端目錄,接着進入/mnt目錄下使用
指令:pc pthreadserver /home/server,将伺服器端程式複制到建立的目錄中。
(7)在開發闆的/home/server目錄下使用指令:./pthreadserver,打開伺服器端程式。
(8)在PC端使用指令:./client192.168.1.20, 打開用戶端程式,并根據提示資訊(Please Input File
Name OnClient)輸入用戶端所在目錄下存在的檔案名。(可以打開多個用戶端同時傳輸檔案)
(9)傳輸檔案成功,用戶端程式顯示發送成功資訊并退出,伺服器端程式顯示接收資料成功資訊并繼續監聽
(10)使用指令ctrl + c結束伺服器端程式,并使用指令:ls –l,
可以檢視從用戶端傳輸至伺服器端的檔案資訊。
注:可在PC端進行測試(IP:127.0.0.1)
實驗結果:
(1)telnet, 挂載:
(2)交叉編譯: