Olá! Boa tarde a todos!
Estou desenvolvendo um programa Cliente/Servidor que deve enviar 7 valores booleanos do Servidor para o Cliente.
Esses dados estão alocados em uma struct:
*** No Servidor ***
struct movimentos{
bool Frente;
bool Esquerda;
bool Direita;
bool Parado;
bool PassoDireita;
bool PassoEsquerda;
}m;
E utilizo uma união que inclui esses dados e identifica o tamanho da estrutura:
union dados{
movimentos m;
char tamanho [(sizeof movimentos)];
}uniao;
E depois eu uso a função send enviando o endereço da estrutura para o cliente, assim como o seu tamanho:
send(winsock, uniao.tamanho, sizeof(uniao.tamanho), 0);(Está certo ou eu deveria fazer de outro modo?)
*** No Cliente ***
Eu tenho a mesma estrutura que deve receber os valores presentes no endereço da estrutura assada pela função send no servidor:
struct movimentos{
bool Frente;
bool Esquerda;
bool Direita;
bool Parado;
bool PassoDireita;
bool PassoEsquerda;
}m;
Que também possui uma união: (Ou aqui ela não precise existir?)
union dados{
movimentos m;
char tamanho [(sizeof movimentos)];
}uniao;
E recebo (ou acho que recebo né, posso estar fazendo errado) esses dados com a função recv:
recv(winsock,uniao.tamanho,sizeof(uniao.tamanho),0 );
O que eu não consigo fazer é receber os dados booleanos enviados pelo Servidor e utilizá-los no Cliente.
Gostaria de saber se estou fazendo tudo errado ou esse é o caminho?
Fui instruída a passar os dados dessa forma, com um struct que possui os dados e uma union que engloba a struct e seu tamanho.
Mas fico em dúvida sobre o que passar no segundo argumento da função send, ou o que eu estou passando está correto?
Socorro!
=)
Obrigada!
Estou desenvolvendo um programa Cliente/Servidor que deve enviar 7 valores booleanos do Servidor para o Cliente.
Esses dados estão alocados em uma struct:
*** No Servidor ***
struct movimentos{
bool Frente;
bool Esquerda;
bool Direita;
bool Parado;
bool PassoDireita;
bool PassoEsquerda;
}m;
E utilizo uma união que inclui esses dados e identifica o tamanho da estrutura:
union dados{
movimentos m;
char tamanho [(sizeof movimentos)];
}uniao;
E depois eu uso a função send enviando o endereço da estrutura para o cliente, assim como o seu tamanho:
send(winsock, uniao.tamanho, sizeof(uniao.tamanho), 0);(Está certo ou eu deveria fazer de outro modo?)
*** No Cliente ***
Eu tenho a mesma estrutura que deve receber os valores presentes no endereço da estrutura assada pela função send no servidor:
struct movimentos{
bool Frente;
bool Esquerda;
bool Direita;
bool Parado;
bool PassoDireita;
bool PassoEsquerda;
}m;
Que também possui uma união: (Ou aqui ela não precise existir?)
union dados{
movimentos m;
char tamanho [(sizeof movimentos)];
}uniao;
E recebo (ou acho que recebo né, posso estar fazendo errado) esses dados com a função recv:
recv(winsock,uniao.tamanho,sizeof(uniao.tamanho),0 );
O que eu não consigo fazer é receber os dados booleanos enviados pelo Servidor e utilizá-los no Cliente.
Gostaria de saber se estou fazendo tudo errado ou esse é o caminho?
Fui instruída a passar os dados dessa forma, com um struct que possui os dados e uma union que engloba a struct e seu tamanho.
Mas fico em dúvida sobre o que passar no segundo argumento da função send, ou o que eu estou passando está correto?
Socorro!
=)
Obrigada!