Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "fmt"
- "bytes"
- "encoding/binary"
- "net"
- )
- type myEvent struct {
- IP_version int32
- Ipv6_src_addr [16]byte
- }
- func readFromByteArrayIntoStruct() {
- // create event
- ip := net.ParseIP("2001::face")
- var ipBytes [16]byte;
- copy(ipBytes[:], ip.To16())
- event := myEvent {
- IP_version: 4,
- Ipv6_src_addr: ipBytes,
- }
- // convert to bytes
- buf := new(bytes.Buffer)
- if err := binary.Write(buf, binary.BigEndian, event); err != nil {
- fmt.Println("binary.Write failed:", err)
- return
- }
- eventBytes := buf.Bytes()
- fmt.Println(buf.Len(), eventBytes)
- // read back the bytes into a new event
- reader := bytes.NewReader(eventBytes)
- var decodedEvent myEvent
- if err := binary.Read(reader, binary.BigEndian, &decodedEvent); err != nil {
- fmt.Println("binary.Read failed:", err)
- } else {
- fmt.Println(decodedEvent)
- }
- }
- func main() {
- readFromByteArrayIntoStruct()
- }
Add Comment
Please, Sign In to add comment