2016-04-23 20 views
0

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

これ、.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と呼ばれる画像を取る、私はそれをデコードするが、それをサーバーに送る前に、クライアント上に型を登録します。 私の問題は、どのようにサーバーにそのタイプを登録できますか?私はそのイメージタイプ/を登録することができないので、私はいつも同じサーバーで失敗します://

ありがとうございます。

答えて

1

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

+0

yeeeeeeeeah、解決済み。このようなエラー!ありがとう!!! :* – dbaus

関連する問題