亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

無法從插槽中讀取數據

無法從插槽中讀取數據

Go
婷婷同學_ 2021-04-13 13:14:21
我正在嘗試學習Go語言,并且正在編寫一個簡單的回顯服務器。不過,我很難使它正常工作。func listen(server string) {    var buf []byte    listener, ok := net.Listen("tcp", server)    if ok != nil {        fmt.Fprintf(os.Stderr, "Could not listen on socket: %s\n", ok.String())        return    }    conn, ok := listener.Accept()    if ok != nil {        fmt.Fprintf(os.Stderr, "Could not accept connection on socket: %s\n", ok.String())        return    }    writelen, ok := conn.Write(strings.Bytes("Ready to receive\n"))    if ok != nil {        fmt.Fprintf(os.Stderr, "Could not write to socket: %s\n", ok.String())    } else {        fmt.Printf("Wrote %d bytes to socket\n", writelen)    }    for ;; {        readlen, ok := conn.Read(buf)        if ok != nil {            fmt.Fprintf(os.Stderr, "Error when reading from socket: %s\n", ok.String())            return        }        if readlen == 0 {            fmt.Printf("Connection closed by remote host\n")            return        }        fmt.Printf("Client at %s says '%s'\n", conn.RemoteAddr().String(), buf)    }}我從此函數獲得以下輸出:[nathan@ebisu ~/src/go/echo_server] ./6.out 1234Using port 1234Wrote 17 bytes to socketError when reading from socket: EOF這是我在客戶端上看到的:[nathan@ebisu ~] telnet 127.0.0.1 1234Trying 127.0.0.1...Connected to 127.0.0.1.Escape character is '^]'.Ready to receiveConnection closed by foreign host.任何幫助將不勝感激(或指向資源的指針;套接字API上的go文檔尚有待改進)。
查看完整描述

2 回答

?
qq_遁去的一_1

TA貢獻1725條經驗 獲得超8個贊

在您的示例中,buf必須具有確定的大小。您已將其聲明為長度為0的切片。

聲明為:

var buf = make([]byte, 1024)


查看完整回答
反對 回復 2021-04-26
  • 2 回答
  • 0 關注
  • 268 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號