接收数据,并显示,代码解释

本文通过一个实例解析了如何使用net.Conn接收并显示数据。介绍了clnSck作为net.Conn类型的变量,以及如何创建缓冲区buf用于读取数据。通过clnSck.Read()方法读取数据,返回的dataLen表示读取的字节长度,err用于检查是否到达数据流结尾。msg通过将buf切片转换为字符串,展示了数据内容。需要注意,msg不包含最后一个字符(通常是回车符)。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

例题
func recv(clnSck net.Conn) {
  buf := make([]byte, 1024)
  dataLen, err := clnSck.Read(buf)

  if err != nil {
    fmt.Println(err)
    return
  }
  msg := string(buf[:dataLen])
  // 显示接收到的消息

  fmt.Println(msg)
}

1.func recv(clnSck net.Conn)
clnSck net.Conn 不甚清楚,net.Conn是一个类型,应该是监听类型,定义了一个clnSck的变量

2. buf := make([]byte, 1024)
but定义成了一个slice切片(定义方式是make,所以每个源数组元素都是0,一共1024个),
长度容量均是1024,可以读取足够长(1024个)字符信息。
其中的byte是指int8 2的8次方个字符(0~255个ASCLL2码)

3.  dataLen, err := clnSck.Read(buf)
clnSck.Read()其中类型clnSck定义了Read()方法,
其方法的参数是一个切片slice,返回值包括一个int类型表示字节长度(赋值给了dataLen),
另一个error类型赋值给了err。读取到数据流结尾时(err==io.EOF),break;

4.msg := string(buf[:dataLen])
msg 推断得出是string类型,buf[:dataLen]意思是指
从but切片的0位置一直到dataLen数字的前一个,
注意这里显示的都是数字,0~255的数字中的一个。
而string()将buf切片的元素全部转换成字符格式。
最后,从clnSck得到的信息不包括最后一个字符(一般是回车),从dataLen中可以知道。





                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值