我有很多,net.Conn我想實現多作家。所以我可以將數據發送到每個可用net.Conn的。我目前的方法是使用io.MultiWriter.func route(conn, dst []net.Conn) { targets := io.MultiWriter(dst[0], dst[1]) _, err := io.Copy(targets, conn) if err != nil { log.Println(err) }}但問題是,我必須指定每個net.Conn索引io.MultiWriter,這將是一個問題,因為切片大小是動態的。[]net.Conn當我通過傳遞給嘗試另一種方法時io.MultiWriter,如下面的代碼func route(conn, dst []net.Conn) { targets := io.MultiWriter(dst...) _, err := io.Copy(targets, conn) if err != nil { log.Println(err) }}出現錯誤“無法將鏡像([]net.Conn 類型的變量)用作 io.MultiWriter 參數中的 []io.Writer 值”有沒有正確的方法來處理這種情況?所以我可以將net.Conn切片傳遞給io.MultiWriter。謝謝你。
1 回答

慕少森
TA貢獻2019條經驗 獲得超9個贊
io.MultiWriter()
有一個類型的參數...io.Writer
,所以你只能傳遞一個類型的片段[]io.Writer
。
所以首先創建一個正確類型的切片,將net.Conn
值復制到它,然后像這樣傳遞它:
ws := make([]io.Writer, len(dst)) for i, c := range dst { ws[i] = c } targets := io.MultiWriter(ws...)
- 1 回答
- 0 關注
- 95 瀏覽
添加回答
舉報
0/150
提交
取消