Socket編程中用send發送結構體
結構體前帶有4個同步字符,同步字符為十六進制數16(ASCII字符SYN)。 (這句話怎么理解啊)
struct TabFLogin {
BYTE Reserved;
BYTE LenTab;
BYTE TSCLinkCode;
BYTE RetSIDE;
BYTE TSC_Id;
};
struct TabFLogin TabFLogin_1;
TabFLogin_1.LenTab = 5;
TabFLogin_1.TSCLinkCode = 103;
TabFLogin_1.RetSIDE = 1;
TabFLogin_1.TSC_Id = 3;
char send_buf[1024];
memset(send_buf,0,1024);
memcpy(send_buf,&TabFLogin_1,sizeof(TabFLogin_1));
ClientSocket->Socket->SendBuf(send_buf,0);
uj5u.com熱心網友回復:
send_buf 前4個位元組為4個0x16,send_buf + 4 開始為結構體內容。uj5u.com熱心網友回復:
怎么寫,謝謝
uj5u.com熱心網友回復:
for(int i=0;i<4;i++)
*((char *)(send_buf+i))=0x16;
memcpy(send_buf+4 , &TabFLogin_1,sizeof(TabFLogin_1));
手寫沒驗證,你試試看。
uj5u.com熱心網友回復:
for(int i=0;i<4;i++)send_buf[i]=(char)0x16;
就可以了,send_buf陣列就是char型別的。
uj5u.com熱心網友回復:
輸入7個整數將最小值與第一個數交換最大值與最后一個數交換,然后輸出交換后的七個數uj5u.com熱心網友回復:
樓主可以試試下面這樣的寫法,用一個大結構體來包含小結構體struct TabFLogin {
BYTE Reserved;
BYTE LenTab;
BYTE TSCLinkCode;
BYTE RetSIDE;
BYTE TSC_Id;
};
struct SendBufData{
BYTE syn[4];
struct TabFLogin data;
};
struct SendBufData TabFLogin_1 ;
memset(TabFLogin_1.syn, 0x16, 4); //填充SYN資料
TabFLogin_1.data.LenTab = 5;
TabFLogin_1.data.TSCLinkCode = 103;
TabFLogin_1.data.RetSIDE = 1;
TabFLogin_1.data.TSC_Id = 3;
char send_buf[1024];
memset(send_buf,0,1024);
memcpy(send_buf, &TabFLogin_1, sizeof(TabFLogin_1));
ClientSocket->Socket->SendBuf(send_buf,0);
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/44226.html
標籤:網絡及通訊開發
