色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

socket傳輸字符串與其他類型的數(shù)據(jù)

錢瀠龍2年前40瀏覽0評論

socket傳輸字符串與其他類型的數(shù)據(jù)?

這個問題點非常好。但問的不是很明確。

你肯定是想問socket傳輸數(shù)據(jù)時,接收方如何知道接收的是字符串還是二進(jìn)制值。一是靠事先約定的協(xié)議,一般用于控制中的數(shù)據(jù)傳輸;二是采用標(biāo)準(zhǔn)協(xié)議(如HTTP),用于互聯(lián)網(wǎng)。

如果沒有事先的約定,你無法確定接收到的數(shù)據(jù)是文本、圖像還是音頻或視頻。因此,必須事先約定Socket接收數(shù)據(jù)的格式。約定既可以采用標(biāo)準(zhǔn)協(xié)議(如HTTP),也可以用自己定義的協(xié)議。

以下通過我之前做的編程實類,分別說明:

事先約定協(xié)議:二進(jìn)制與字符串事先寫好格式,與文件讀/寫一樣。

SOCKET傳輸字符串還是其它數(shù)據(jù)類型,由你在編程的send()函數(shù)中決定,其數(shù)據(jù)類型為void*,void *為“無類型指針”,void *可以指向任何類型的數(shù)據(jù),也就是說可以用字符串,也可以用二進(jìn)制的int,double等。

TCP/IP,UDP傳輸協(xié)議,用socket編程并創(chuàng)建socket關(guān)鍵字來實現(xiàn)網(wǎng)絡(luò)間的通信。

如下圖是windows的一個socket編程。

從其send,recv函數(shù)的格式看,與C/VC++的fread/fwrite()函數(shù)非常一致,只是把流換成socket套接字了:

HTTP客戶端請求:要復(fù)雜,必須按照HTTP標(biāo)準(zhǔn)協(xié)議做。

以客戶端為例。

客戶端發(fā)送一個HTTP請求到服務(wù)器的請求消息包括以下格式:請求行(request line)、請求頭部(header)、空行和請求數(shù)據(jù)四個部分組成,下圖給出了請求報文的一般格式。

編程實倒:

從上面看出,編程與windows,linux迥然不同。