Qt中如何通過tcp傳送結構體

2021-06-27 13:30:38 字數 686 閱讀 2516

前一段時間移植在想qt如何通過tcp傳送結構體,網上有人說可以通過如下方式

tcpsocket->write((char *)&objecta, sizeof(objecta));
tcpsocket->read((char *)&objecta, sizeof(objecta));

但是我沒有成功,read有資料快取問題,所以讀過來的的資料不正確,有時 對乙個,又是乙個也讀不出,於是嘗試用readall()然後通過memcpy((&recvbuffer,temp,sizeof(clienttoservermessage));轉換成結構體,這種方法我也沒成功,通過readall()乙個都讀不出來,具體原因現在還沒找到,

於是通過下面的方法

inline

qdatastream

&operator

<<(

qdatastream

&out

,stu_info

&stu_info

)

inline

qdatastream

&operator

>>(

qdatastream&in

,stu_info

&stu_info

)

通過過載操作符算是實現了,不過這也不太算是傳送結構體,不過實現了我想要的功能。

C 通過TCP傳送結構體

在寫c tcp通訊程式時,傳送資料時,只能傳送byte陣列,處理起來比較麻煩不說,如果是和vc6.0等寫的程式通訊的話,很多的都是傳送結構體,在vc6.0中可以很方便的把乙個char陣列轉換為乙個結構體,而在c 卻不能直接把byte陣列轉換為結構體,要在c 中傳送結構體,可以按以下方法實現 1 定義...

QT中TCP傳遞結構體,

看了網上很多大神,有認識過載運算子把結構體中的內容乙個乙個進行傳遞的,比較麻煩,也有說的比較輕鬆的,完全不適合我這種小白看,完全不知所以。最後終於找到了解決的方法。下面是我學習到的的方法 在客戶端標頭檔案中定義乙個結構體 typedef struct node node 下面是傳送的函式 node ...

c c 通過socket傳送結構體

c c 通過socket傳送結構可以直接先將結構轉化到記憶體中,再通過send直接傳送。首先,我們建立乙個結構體。struct usrdata write cfg fd,para,sizeof hd4100 rec t hd4100 rec t是自定義的結構 close cfg fd printf ...