小白基於Csocket的區域網路聊天檔案傳輸軟體C/S模式

來源:互聯網
上載者:User

標籤:csocket   網路編程   區域網路聊天   socket傳檔案   socket編程   

首先,並不建議大家用Csocket,經驗之談,CAsyncSocket基礎上派生的一個同步阻塞Socket的封裝類,也就是說編程的過程很多麻煩,但是我堅持下來了。。。。。好煩。。。。

.................................................分割線.....................................................................................

思想其實很容易理解,S(伺服器端)建立socket,Listen()用戶端是否串連,然後Accept()串連上來的socket。而C(用戶端)建立socket,然後串連Connect()S,這樣基本的結構就形成了。然後就可以Send和Receive了。

而傳文字和傳檔案,我建議兩個連接埠進行,並且另起一個線程用於傳檔案,這樣會避免錯誤,畢竟Csocket是同步阻塞的,好煩。。。。如果用一個socket很容易出錯,具體點容易Receive錯誤的資訊。

具體步驟:

1.伺服器擷取本機IP地址,顯示到IP控制項中,然後S的使用者告訴C的使用者,我的IPi是這個,你連這個。(當然得使用其他方式),依據該IP,和一個未使用連接埠建立Socket->Listen()->Accept();

2.C根據S告訴的IP地址,串連。然後雙方就可以發送和接收文字了。

3.傳檔案的方式

(1)S->C:S點擊按鈕,然後通過傳文字的方法告訴C,我要給你發檔案了,然後建立傳檔案的Socket,Accept()等待C應答。C點擊按鈕,接收檔案,並給S發送文字訊息,然後串連S建立的Socket,(IP地址之前已經知道了,連接埠是寫死的),SAccept()到C,就Send檔案。具體如何發檔案,見下文。

(2)C->S:因為我覺得沒必要知道C的IP,所以還是S建立socket,當C告訴S我要發的時候,S建立,Accept,說”我準備好了“你發吧,然後C串連Connect(),傳送檔案,S接收。

傳送檔案這種校正方式還有待推敲,我也是第一次寫。。。。。大家多提建議和意見,我是按照QQ發檔案的思維想的。

4.發檔案,我採取設定緩衝區,迴圈發送的方法,這樣可以傳輸各種大小的檔案。

小白基於Csocket的區域網路聊天檔案傳輸軟體C/S模式

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.