TCP/IP 資料讀取位元

在LV內建的sample code中,

有一個 samp data client.vi

在程式中,有個參數 4 , 不知是網路通訊協定上,本來就固定前4byte的資料專門存放後續進來的封包資料長度,還是說有其他用意 ?

![](upload://6gJ9HJtdwEICtpTHU69f5ufeejx.jpeg)

Simple Data Server.vi

Simple Data Client.vi

[QUOTE=Donnie]在LV內建的sample code中,

有一個 samp data client.vi

在程式中,有個參數 4 , 不知是網路通訊協定上,本來就固定前4byte的資料專門存放後續進來的封包資料長度,還是說有其他用意 ?[/QUOTE]

是這樣的,請先看看Data Server的程式,以下是該程式的片段:

先傳了資料長度,再傳實際資料

所以在讀取資料的時候,就先讀取資料長度,確定資料長度後,在讀取實際資料。

[QUOTE=Benjamin][QUOTE=Donnie]在LV內建的sample code中,

有一個 samp data client.vi

在程式中,有個參數 4 , 不知是網路通訊協定上,本來就固定前4byte的資料專門存放後續進來的封包資料長度,還是說有其他用意 ?[/QUOTE]

是這樣的,請先看看Data Server的程式,以下是該程式的片段:

 

先傳了資料長度,再傳實際資料

所以在讀取資料的時候,就先讀取資料長度,確定資料長度後,在讀取實際資料。

[/QUOTE]

 

 

謝謝

我懂你的意思, 但是比較不清楚的是,小改一下程式並舉個例,當我在simple server.vi端,輸入12345678送出, 看到的是送出"8"這個字串,可是在simple client.vi端,仍以"4"來接收,有點奇怪,因為8>4應該是會超過,因為只收4個字啊?? (是不是我會錯意了)

還是說 "8"這個字串只用了1個byte表示,所以client端用4個byte來接收,當然能收囉!!(不知是不是這樣解釋)

那換句話說,client端用2個byte來接收應該也能收囉?不知道對不對?