Per https://golang.org/pkg/encoding/gob/, “Structs encode and decode only 
exported fields.”
The fields of your C struct are unexported in Go, since they start with 
lower-case letters.

If the gob package is encoding or decoding the non-array fields of the 
struct, *that* is the bug.


On Monday, December 18, 2017 at 8:04:32 AM UTC-5, Tamás Gulácsi wrote:
>
> Use a Go struct for GOB encoding/decoding.
>
> 2017. december 18., hétfő 13:51:26 UTC+1 időpontban Kanika Kakkar a 
> következőt írta:
>>
>> I am sending a C structure which looks like this
>>
>> typdef struct 
>> {
>>  unsigned char field1;
>>  unsigned char field2;
>>  unsigned char array[10];
>> }complete_data_t;
>>
>> I am encoding this data using GOB and sending as UDP broadcast in a very 
>> small network. On the receiver side, all fields are correctly getting 
>> parsed but all array elements are coming as zero. I am populating these 
>> array elements with a non-zero value at the transmitter side.
>>
>> var data C.complete_data_t
>>
>> Transmitter side:
>> var buffer bytes.Buffer
>> err := gob.NewEncoder(&buffer).Encode(&data)
>>   _,err = conn.Write(buffer.Bytes())
>> buffer.Reset()
>>
>> Receiver side:
>> rx_buf := make([]byte, 1024)
>> length,addr,err := conn.ReadFrom(rx_buf)
>> buffer := bytes.NewBuffer(rx_buf[:length])
>> err = gob.NewDecoder(buffer).Decode(&data)
>>
>>
>>   
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to