日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

socket c/s分佈式編程

發(fā)布時間:2023/12/9 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 socket c/s分佈式編程 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?

SOCKET

Socket接口介于應(yīng)用程序與硬件之間Socket的理解可以簡化為:它是封裝了數(shù)據(jù)流(Stream)的從機器到機器的一條軟接線,通過這條軟接線,并借助于線兩端的收發(fā)程序,網(wǎng)絡(luò)上的機器間實現(xiàn)了信息的交流與互通。分離在軟線兩端的應(yīng)用程序(服務(wù)器端程序和客戶端程序)可以通過調(diào)用Socket接口來開發(fā)具有TCP/IP網(wǎng)絡(luò)功能的程序應(yīng)用。

作為客戶端,即要知道服務(wù)程序所在房間的房間號(IP地址),又要知道后門的位置(端口)。這樣才能正確地進入房間。

?

數(shù)據(jù)編發(fā):

軟線建立完成后,還必須有數(shù)據(jù)傳輸?shù)囊?guī)則,這就是服務(wù)端和客戶端商量著來的事情了。數(shù)據(jù)使用什么封裝,傳送時遵循什么規(guī)則(收發(fā)協(xié)議)、傳輸是否采用壓縮技術(shù)和加解密技術(shù)等。將數(shù)據(jù)封裝起來,可以讓程序的設(shè)計者像操作本地文件一樣來操作流動在網(wǎng)絡(luò)上的信息。不同的數(shù)據(jù)封裝方式將決定客戶端和服務(wù)器端數(shù)據(jù)的訪問方式。編發(fā)類型僅限于標(biāo)量(基本型別)和字符串對象。複雜對象需要我們考慮有關(guān)對象到字節(jié)的串行化以及字節(jié)流到對象的還原問題。

?

多線程

作為一種例程服務(wù),必須要考慮其同時服務(wù)于多用戶的問題。這個問題的解決可以通過線程技術(shù)來實現(xiàn),而且相當(dāng)簡單。基本思路是:在服務(wù)器內(nèi)產(chǎn)生單一的監(jiān)聽Socket,并循環(huán)調(diào)用accept()等待新的軟線連接。Accept()每返回一次,就會帶回與特定客戶有關(guān)的Socket,將該Socket的運作安排到一個獨立的線程中,這樣其服務(wù)就是針對特定客戶的了??紤]到多線程對共享資源訪問時的同步問題如果處理不當(dāng)就會造成線程的不安全,必須為臨界區(qū)設(shè)置線程鎖。

?

基于TCP的收發(fā)協(xié)議
???
使用Socket編程,必須明確客戶端與服務(wù)器端的收發(fā)協(xié)議。以下是針對該實例定義的收發(fā)協(xié)議:
客戶端:發(fā)送報頭9999,發(fā)送用戶名(String),發(fā)送密碼(String
服務(wù)端:接收報頭9999,接收用戶名和密碼,驗證登錄權(quán)限
???????
是合法用戶:發(fā)送報頭9999,發(fā)送歡迎信息(String
???????
是非法用戶:發(fā)送報頭-1,發(fā)送警告信息(UTF
客戶端:接收報頭9999,獲取歡迎信息(String

轉(zhuǎn)載于:https://www.cnblogs.com/hnxxcxg/archive/2009/07/09/2940766.html

總結(jié)

以上是生活随笔為你收集整理的socket c/s分佈式編程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。