Client端

 網路導論 TCP & UDP Sever端 Socket Client端 執行緒Tread

 

首頁
前言
網路導論
Linux 視窗程式
整合成果展示
心得與感想 

                        Client端

 

Client端主要可以分成三個部分,建立連線,連線終止網路傳輸

流程如圖:

        

 

建立連線

當面板的連線按鍵被按下時,會去開一個執行緒,執行網路傳輸的動作,建立和

server端的連線,連線後發送前三個封包做溝通

第一個封包詢問server是否可以做連線準備傳輸

第二個封包發送使用者名稱和密碼

第三個封包發送開始傳輸

 

    成功接收到這三個封包,server打開encoder和網路傳輸,假使當中有一個封包錯

    誤,代表雙方處在的狀態不同或使用者密碼錯誤,這會使server重新回到

    bind狀態,等待下一次監聽,而client離開執行緒,面板出現連線狀態為Idel,

    告訴使用者,連線失敗

 

資料傳輸

當連線建立成功之後,按下撥放,client端會開一個執行緒,去執行接收encoder壓

好的資料,並且在使用者client端,再開一個執行緒,執行影像撥放的動作,在這個

階段必須要達到以下目的

 Ø Server端要知道encoder壓的檔案目前的大小,避免傳的時候沒有資料可傳,造成  

    錯誤

 Ø Client端可以利用counter方式做比較,防止接收速度來不及,沒有新的資料可以撥

    放,而decoder做撥放的動作,造成資源浪費和錯誤,同時可以完成暫停的功能

結束監聽

按下中斷的按鍵,client開一個執行緒,發送結束監聽的封包,給server告訴他監聽結

束,而server端會做關閉網路傳送和encoder壓檔案的動作,在這個階段必須要達到這

個目的

 Ø Server必須全自動 化,就算client沒有正常結束,之後依然要可以恢復正常傳輸狀

    態,使以後的傳輸恢復正常

    也就是說server只要打開第一次,就可以不斷的等待client做連線,做監聽,即使

    client端沒有正常按下中斷的按鈕,也能夠繼續回到監聽有沒有client要連進

    來的狀態由於有封包 在檢查雙方的state,使得上次的不正常結束在下一次連線時

    會先連線失敗,但server端會再度回到一開始監聽有沒有client連進來的狀態,

    下一次連線又可以恢復正常使用

 

首頁 | 網路導論 | TCP & UDP | Sever端 | Socket | Client端 | 執行緒Tread