在golang接收酸洗流

时间:2017-05-11 11:04:40

标签: python serialization go

我在golang中安装了tcp服务器,希望接收和解码一个pickle流

我正在使用stalecucumber取消go

中的数据

python方面大致看起来像这样

sock = socket(AF_INET,SOCK_STREAM)
sock.connect(('127.0.0.1',5006))
sock.send(cPickle.dumps(data))

Go服务器如下所示:

ln, _ := net.Listen(CONN_TYPE, CONN_PORT)
conn, _ := ln.Accept()
data := make([]byte,0)
for {
    // for gob I would normally do this
    //  dec.Decode(&data); 
    err := stalecucumber.UnpackInto(&data).From(stalecucumber.Unpickle(<can't provide conn here>))
}

任何方式听取腌制物品流并解码它们?

1 个答案:

答案 0 :(得分:1)

  

来自stalecucumber
  Unpickle需要io.reader

func Unpickle(reader io.Reader) (interface{}, error) {   
     

看起来应该是这样的:

err = UnpackInto(&data).From(Unpickle( bytes.NewReader( buf.Bytes() ) ))  

我认为您必须将其与conn

一起使用
err = UnpackInto(&data).From(Unpickle( bytes.NewReader( conn ) ))