C語言,具體的也說不好,就大致說一下場景,求大神分析分析。
做的是一個專案,在前臺敲一個命令,這個命令是while回圈獲取apmodel(一個一個獲取,每次去取得時候,都通過socket連接),首先是把第一個自己輸入的通過tlv封裝到后臺,在后臺通過for回圈遍歷(一次只獲取一個),獲取到得資料再通過socket連接傳回到前臺進行比較,看是否符合要求。如果符合要求,則break出這個while回圈;如果不符合要求,就再通過socket到后臺去取一個資料回來。這也就造成了socket通信多次,影響效率,現在要優化成通信一次。
我想法是:資料傳到后臺時,通過一個for回圈把所有的東西都取出來,然后封裝一下,再通過socket那個連接把所有的東西都傳到前臺,再由前臺一個個進行比較。
那么問題來了,取得資料,名字不一樣,長度不一樣,這個封裝怎么解決?獲取的資料有訊息頭什么的,這個傳到前臺時,解出來應該怎么進行指標的偏移?還是說我在后臺獲取的資料時,只把結構體中的名字給賦值到一個buf中,再把這個buf給封裝好傳到前臺?如果是這樣的話,那名字長短不一樣,再把封裝好的東西解出來時候,會不會不太好取到?
后臺的那個一個個獲取apmodel,是不是要獲得一個封裝一個,然后把這個封裝好的東西加到buf這個陣列中去?
我感覺自己也表達的不是很好,有沒有大神稍微看看解決一下。
這個場景就是,敲一個命令列獲取apmodel,但是會有很多,需要一個個獲取出來進行比較。還有就是獲取名字,然后把這個名字下的配置給打出來,原來的情況下是一次獲取一個名字,然后通過這個名字去取資料,可能比較簡單,現在要改成把名字都取過來到前臺,然后再把取過來的名字一個個分開來,分別去取每個的配置。這里的區分就不太清楚該怎么去弄- -
uj5u.com熱心網友回復:
把要發送的資料定義成tlv結構,type, length, value,這三個變陣列合起來,基本能夠滿足你的需求轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/133343.html
標籤:網絡通信
