0

golang パケットvalyala goRPCを使用して rpc 経由で画像を送信したいのですが、サーバーで画像タイプを受信するのに問題があります。

これは、.jpg 画像を取得し、デコードして rpc 経由で送信するクライアント コードです。

c := &gorpc.Client{
  // TCP address of the server.
   Addr: "127.0.0.1:12345",
}
c.Start()
reader, err := os.Open("barranco.jpg")
if err != nil{
    log.Fatal(err)
}

defer reader.Close()

img, _, err := image.Decode(reader)
if err != nil {
    log.Fatal(err)
}


fmt.Print("Pulsa intro para enviar.\n")
bufio.NewReader(os.Stdin).ReadBytes('\n') 

gorpc.RegisterType(img)

resp, err := c.Call(img)

このコードでは、barranco.jpg という画像を取得し、それをデコードしますが、サーバーに送信する前にクライアントにタイプを登録します。私の問題は、そのタイプをサーバーに登録するにはどうすればよいですか? そのイメージタイプを登録できないため、サーバーで常に同じ失敗が発生します/:

前もって感謝します。

4

1 に答える 1

1

image.Imageはインターフェースなので登録できません。抽象的すぎます。ただし、jpeg の基盤となる実装はどちらかimage.Grayまたはのいずれかimage.YCbCrであり、どちらも具体的な構造体であり、assert と入力しimg.(Gray)てどちらを決定するかを決定できます。image.Grayと の両方を登録して、どちらimage.YCbCrを持っているかをアサートし、具象型として送信してみてください。

于 2016-04-23T16:59:10.103 に答える