分类: LINUX
2007-08-28 15:22:00
chinaunix网友2008-11-17 19:26:56
草本兄,TCP带数据的时候,效验为什么必须这样才正确: memcpy(buf, &psdheader,sizeof(psdheader)); memcpy(buf+sizeof(psdheader),&tcpheader,sizeof(tcpheader)); memcpy(buf+sizeof(psdheader)+sizeof(tcpheader),data,datalen); tcpheader.checksum = checksum((unsigned short *)buf,sizeof(psdheader)+sizeof(tcpheader)+datalen); tcpheader.checksum = htons(ntohs(tcpheader.checksum) - (unsigned short)datalen); 看,后面要有个减操作,才能正确,为什么呢?