Go语言网络编程:数据序列化与ASN.1的应用
1. 网络编程基础函数与消息传输
在网络编程中,有几个基础函数非常重要。首先是 checkSum 函数,它用于计算消息的校验和,代码如下:
func checkSum(msg []byte) uint16 {
sum := 0
// assume even for now
for n := 0; n < len(msg); n += 2 {
sum += int(msg[n])*256 + int(msg[n+1])
}
sum = (sum >> 16) + (sum & 0xffff)
sum += (sum >> 16)
var answer uint16 = uint16(^sum)
return answer
}
checkError 函数用于检查错误,如果出现错误则输出错误信息并退出程序:
func checkError(err error) {
if err != nil {
fmt.Fprintf(os.Stderr, "Fatal error: %s", err.Error())
os.Exit(1)
}
}
readFully 函数用于从连接中读取完整的消息,代码如下:
超级会员免费看
订阅专栏 解锁全文
35

被折叠的 条评论
为什么被折叠?



