MasterSavage
(usa Slackware)
Enviado em 20/06/2006 - 18:25h
Você poderia criar uma área de memória com malloc, utilizando o tamanho da estrutura que vc quer passar e um ponteiro para a estrutura. Isso criaria uma area de memoria (buffer) que você pode enviar via BSD sockets.
Aqui devo frisar que você não esta passando a estrutura propriamente dita, mas apenas uma sequência de bytes, que o programa na outra ponta deve "entender" como uma estrutura igual a que foi enviada.
O que vc precisa é criar um protocolo para a aplicaçào para transmitir os dados de forma consistente e recupera-los em uma estrutura igual (com tipos básicos isso é fácil, com estruturas você precisaria , no mínimo, utilizar minha sugestão do malloc).
Imagino um problema em passar estruturas de forma arbitraria, quando ela tiver campos com ponteiros para outros dados ou para outras estruturas. Neste caso, na recepção, os endereços seriam inválidos.
Resumindo: Passar uma estrutura C não é possivel pela sua própria natureza, ela so existe como uma estrutura do C.