對不起,我的英文很差!我正在開發一個C程序通過tcp ip發送數據。這個程序應該按如下方式使用struct和union(我會把這個重要的代碼只有部分):使用struct和union通過tcp ip發送數據
***服務器發送數據:
採用的是結構與需要發送的數據:
struct movimentos{
bool Frente;
bool Esquerda;
bool Direita;
bool Parado;
bool PassoDireita;
bool PassoEsquerda;
}m;
這包括這些數據並識別結構的尺寸的聯合:
union dados{
movimentos m;
char tamanho [(sizeof movimentos)];
}uniao;
,然後,我使用的「發送」功能發送的這個地址結構到客戶端:
send(winsock,uniao.tamanho,sizeof(uniao.tamanho),0);
* Cliente接收數據:
有一種結構和工會都什麼服務器有:
struct movimentos{
bool Frente;
bool Esquerda;
bool Direita;
bool Parado;
bool PassoDireita;
bool PassoEsquerda;
}move;
union dados{
movimentos move;
char tamanho [(sizeof movimentos)];
}uniao;
功能 '的recv' 接收插座和國際地址:
int bytes=recv(winsock,uniao.tamanho,sizeof(uniao.tamanho),0);
我的問題是下面**
我想使用由服務器客戶端發送的結構的值。但我不知道該怎麼做。我想知道如何讓收到的數據能夠在程序中操作。
謝謝!
你的意思是客戶要你提到收到相同的結構格式的數據? – sujin
這是一個非常糟糕的主意。不要使用結構作爲網絡協議。您正在介紹大約六個不需要的依賴關係。以八位字節定義一個有線協議,並自己寫一個庫來發送和接收它。 – EJP