實作能夠接受多個Client 的連線要求之socket程式。
利用fork(),瞭解執行緒運作流程。
利用fopen, SendFile, FileInputStream,將檔案封裝進packet透過socket傳送。
熟悉撰寫C語言程式與linux相關之操作。
作業成果:
提供client端上傳各種格式的檔案給server端,並可支援多人同時上傳。
功能設計:
由client直接輸入指令,輸入server端的IP位址, 要傳送的檔名, port number,即可傳送。
編輯器:
VIM
Compiler:
gcc
執行環境:
Ubuntu 7.10
執行步驟:
1. server開啟等待接收檔案,注意該資料夾的狀態,此時資料夾並無圖檔。
2. client輸入server IP以及port number, 檔案名稱。本範例為傳送一企鵝圖檔。
3. server端開啟新的process,並且接收檔案完成。
4. 至該資料夾看看,圖檔已正確送達,增加了一個企鵝圖案。
5. 用圖片瀏覽器開啟看看。
作業環境桌面:
程式撰寫心得:
本次寫的是可多人連線的傳檔程式,但是過程中也發現,並不是每次傳檔都會100%成功,可能還要加一些比較詳密的應用層協定,例如FTP的協定,如此才能在不管檔案多大的狀態下,都能傳送完全,所以在撰寫程式後,自己也更瞭解socket傳檔的過程,藉由遇到可能發生的問題,進而思考出解決的辦法,期末的專題比賽也有用到傳檔的功能,所以也幫助我更加瞭解。
沒有留言:
張貼留言