在学习server-client的编写,代码如下:
package main
import (
"fmt"
"net"
"strings"
)
func main() {
fmt.Println("Starting the server...")
listener, err := net.Listen("tcp", "localhost:33445")
if err != nil {
fmt.Println("Error Listenig", err.Error())
return
}
for {
conn, err := listener.Accept()
if err != nil {
fmt.Println("Error accepting", err.Error())
return
}
go doServerStuff(conn)
}
}
func doServerStuff(conn net.Conn) {
for {
buf := make([]byte, 512)
_, err := conn.Read(buf)
if err != nil {
fmt.Println("Error reading", err.Error())
return
}
input := string(buf)
fmt.Println("The input is", strings.TrimSpace(input))
fmt.Printf("Received data: %s\n", strings.TrimSpace(string(buf)))
}
}
这是server端的代码;在最后的打印输出,用了这个TrimSpace函数还是不能将后面的空格去掉,请问下是什么原因呢?难道后面的不是空格?我用过len函数来查看,无论是是否使用TrimSpace函数,长度都是512;我知道是在定义slice的时候指定了长度,但是转成字符串之后应该能去掉的..
试试这个
strings.Replace(str, "\x00", "", -1)