这是基本的 tcp-server,它接受连接,读取传入的数据并写回。
package main
import (
"bufio"
"io"
"log"
"net"
)
func main() {
li, err := net.Listen("tcp", ":8080")
if err != nil {
log.Fatalln(err)
}
defer li.Close()
for {
conn, err := li.Accept()
if err != nil {
log.Fatalln(err)
}
scanner := bufio.NewScanner(conn)
for scanner.Scan() {
ln := scanner.Text()
io.WriteString(conn, ln+"\n")
}
conn.Close()
}
}
但是,扫描仪有一个嵌套循环,并在每次外部循环迭代时声明新的扫描仪。我听说嵌套循环会导致额外的复杂性,并且可能在无限循环的每次迭代中声明新的扫描程序会导致一些内存泄漏。实际上,我不知道如何以另一种方式做到这一点,我只想问两件事:
是否有可能以另一种方式做同样的事情?
我们真的需要对这种低级服务器
抽象进行更多优化吗?
慕姐8265434
相关分类