第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

.net Socket通信效率

.net Socket通信效率

青春有我 2018-09-14 16:06:57
問題描述:     現(xiàn)在準(zhǔn)備用C#開發(fā)一臺數(shù)據(jù)接收服務(wù)器(高速、海量的數(shù)據(jù)、對實(shí)時性要求高且不能丟包?,數(shù)據(jù)包格式為定義好的結(jié)構(gòu)體)。數(shù)據(jù)源(發(fā)送數(shù)據(jù)的服務(wù)器)服務(wù)器端程序由C/C++開發(fā)。數(shù)據(jù)接收服務(wù)器與數(shù)據(jù)源服務(wù)器之間用TCP Socket通信。      接收數(shù)據(jù)時有兩種方式,第一種是把接收到的C++結(jié)構(gòu)體,轉(zhuǎn)換為C#對應(yīng)的結(jié)構(gòu)體形式,網(wǎng)上有轉(zhuǎn)換參考代碼,這里不詳細(xì)說。第二種是讀取數(shù)據(jù)包的字節(jié),然后轉(zhuǎn)換為相應(yīng)的數(shù)據(jù)類型,比如,在C++語言結(jié)構(gòu)體中第一個字段為int型(占四個字節(jié)),在C#中轉(zhuǎn)換時,從接收到的結(jié)構(gòu)體字節(jié)數(shù)組中讀取4個字節(jié),然后強(qiáng)制類型轉(zhuǎn)換為int型,以前做股票程序時,這種方式我用過,確實(shí)可行。     提問:以前兩種用C#接收數(shù)據(jù)的方式哪一種效率更高(即對CPU的性能損失較少;不會導(dǎo)致數(shù)據(jù)接收緩沖區(qū)內(nèi)積累大量的數(shù)據(jù)來不及處理而發(fā)生丟包現(xiàn)象),或都哪位朋友有更好的建議?我的看法是兩種速度差不多,因?yàn)槎际窃趦?nèi)存進(jìn)行處理的,不過接下來幾天我會拿兩者做壓力測試,自己求證一下。但我是希望高手給我分析一下,不勝感激。    再提問:有沒有辦法控制TCP連接中,數(shù)據(jù)接收緩沖區(qū)的大???     期望高手的回答。
查看完整描述

1 回答

?
呼啦一陣風(fēng)

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超6個贊

第一種要高,因?yàn)闄C(jī)器硬件目前一般都是32位或者64位的,批量拷貝肯定比一個字節(jié)一個字節(jié)的拷貝和轉(zhuǎn)換要快很多。

C# 中 數(shù)據(jù)接收緩沖區(qū)是通過 ReceiveBufferSize 來調(diào)整的,你用 C/C++ 不知道你是通過什么方式來做,是直接調(diào)用 socket 的  windows api 呢,還是用 C++ 封裝好的類,所以暫時無法回答你第二個問題。


查看完整回答
反對 回復(fù) 2018-09-19
  • 1 回答
  • 0 關(guān)注
  • 466 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號