回覆列表
  • 1 # pzyyo24296

    可以定義一個結構體變數,結構體裡面有float、double型別的資料,然後傳送;參考如下:struct person{char name[20];int age;float high;};/*可在傳送資料的地方對資料進行處理,將其轉換成一個字串進行傳送,而在接受方定義相同的結構體對這個字串進行解析即可。*///傳送方程式碼如下:char temp[100]; //傳送的字串struct person p1; //宣告一個需要傳送的結構體p1.age = 10;p1.high = 1.80f;strcpy(p1.name,"zhangsan",sizeof(p1.name));memset(temp,0,sizeof(temp)); //對該記憶體段進行清 0memcpy(temp,&p1,sizeof(person)); //把這個結構體中的資訊從記憶體中讀入到字串temp中//接下來傳送temp這個字串就可以了sendto(sock,temp,sizeof(person),0,(SOCKADDR*)&addSer,sizeof(SOCKADDR)); //這樣這個結構體的資訊就傳送到addSer相應的套接字了/*接收方程式碼如下:同樣需要定義字串和相同的結構體物件*/char temp[100]; //傳送的字串struct person p2; //宣告一個存放接收資訊的結構體memset(temp,0,sizeof(temp)); //清記憶體//下面是接收字串的程式碼recvfrom(sock_listen,temp,sizeof(temp),0,(sockaddr*)&addCli,&len);//下面對字串資訊進行還原,將其變成的結構體資料memcpy(&p2,temp,sizeof(person)); //解析過程//下面就可以對p2中的資料進行各種操作了,也完成了結構體資料的傳送。

  • 中秋節和大豐收的關聯?
  • 8升28毫升等於多少升?