2017-10-26 24 views
0

gopacket/layers apiを使用してパケットからupdデータを抽出し、別のUDPストリーム経由で再度送信していますか、これが正しいかどうかはわかりません。誰でもデータを直接表すものではありません偉大 私のコードGolang gopacket udpLayerをバイトに変換して送信する

conn, err := net.Dial("udp", 1.1.1.1) 

udp, _ := updpLayer.(*layers.UDP) 

/*now if i send it like this*/ 

conn.Write(udp) 
/*i get the errors: cannot use udp (type *layers.UDP) as type []byte in argument to conn.Write*/ 

/*I tried to convert to bytes using unsafe*/ 

con := *(*[unsafe.Sizeof(udp)]byte)(unsafe.Pointer(&udp)) 

/* I get cannot use conv (type [8]byte) as type []byte in argument to conn.Write */ 

/* I used ecoding/gob, but is it sending it as a byte stream?*/ 

encoder := gob.NewEncoder(conn) 
encoder.Encode(udp) //or Encode(udp) 
+0

どのようなエラーが表示されますか? –

+0

[コンテンツとペイロード]フィールド(https://godoc.org/github.com/google/gopacket/layers#BaseLayer)を見ましたか? – Peter

+0

@Peter ya私はそれが私が欲しかったものを私に与えたのを見ます。 – octain

答えて

1

updpLayerになり、正しい方向に私を指すことができますので、もしバイトに変換しようと、いくつかのエラーを取得してすることは無意味です。代わりにthe Contents or Payload fieldをお読みください。

関連する問題