2 回答

TA貢獻1789條經驗 獲得超10個贊
由于anet.Conn是一個io.Reader,您可以將其包裝在中,bufio.Reader然后ReadString對該類型使用方法。您的功能將變為
func(c net.Conn) {
f := bufio.NewReader(c)
for {
ln, err := f.ReadString('\n')
if err == io.EOF {
break
} else if err != nil {
panic(err)
}
fmt.Print(ln)
}
c.Close()
}
(我不確定stdout是否在Go中同步;將行發送到在單獨的goroutine中循環的共享通道上可能會更干凈。)

TA貢獻1836條經驗 獲得超3個贊
如果僅此而已,只需將套接字復制到stdout。
package main
import (
"io"
"log"
"net"
"os"
)
func main() {
srv, err := net.Listen("tcp", ":2000")
if err != nil {
log.Fatalf("Error listening: %v", err)
}
for {
conn, err := srv.Accept()
if err != nil {
log.Fatalf("Error accepting: %v", err)
}
go func(c net.Conn) {
defer c.Close()
io.Copy(os.Stdout, c)
}(conn)
}
}
- 2 回答
- 0 關注
- 296 瀏覽
添加回答
舉報