[Go] tcp服务下的数据传递
在连接中,要循环的去读取客户端传递过来的数据,这样就可以不停的处理客户端的请求数据 因为n的ascii编码为10,所以我收到的这一个字节切片的数据tmpByte[0]为10的时候就断掉 可以通过下面代码的运行看一下收取到的数据,客户端传递一个英文字符,和传递一个中文字符所收取到的具体数据,参照ascii对照表 客户端传递:a 客户端传递:你 ascii编码下,一个英文字符一个字节,utf8编码下,一个中文字符三个字节 完整代码: package main import ( "fmt" net" ) func main() { //监听端口 listener,_ := net.Listen(tcp",0.0.0.0:5921) 循环阻塞接收,并发处理同时处理多个连接 for { conn,_ := listener.Accept() go handleConn(conn) } } func handleConn(conn net.Conn) { 循环不停的去处理数据 { tmpByte := make([]byte,1)">1) var resData []byte 循环去读取数据 { len,1)"> conn.Read(tmpByte) fmt.Println(len,tmpByte) 读到的长度为0,或者读取到换行就断掉 if len == 0 || tmpByte[0] == 10 { break } 拼接读到的数据 resData = append(resData,tmpByte...) } str := fmt.Sprintf(收到:%snstring(resData)) conn.Write([]byte(str)) } } ? (编辑:北几岛) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |