欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux C语言 socket编程 关闭对udp checksum的检查

程序员文章站 2022-07-10 18:38:31
...

应用收包时,网卡会对udp头的checksum进行检查,当udp头的checksum不正确时,该包可能会被应用丢弃。因此在C语言的socket程序中可以加上以下内容禁止对checksum的检查从而正确收包:

	int getchecksum = 0;
    socklen_t option_int = sizeof(int);
    int get_error = getsockopt(sock, SOL_SOCKET, SO_NO_CHECK, &getchecksum, &option_int );
    int nochecksum=1;
    int set_error = setsockopt(sock, SOL_SOCKET, SO_NO_CHECK, &nochecksum, sizeof(nochecksum));