socket通信客户端先用校验算法求出校验和???
typedef struct Packets
{
unsigned char head[8]; /* 包头 */
unsigned char type[4]; /* 包类型 */
unsigned char code[4]; /* 命令字 */
unsigned long int len; /* 包长度 */
unsigned long int CheckSum; /* 校验和 */
unsigned char *Data; /* 数据区 */
} Packets;
/* 下面是首部校验和的算法 */
unsigned short in_cksum(unsigned short *addr, int len) /* function is from ping.c */
{
register int nleft = len;
register u_short *w = addr;
register int sum = 0;
u_short answer =0;
while (nleft > 1)
{
sum += *w++;
nleft -= 2;
}
if (nleft == 1)
{
*(u_char *)(&answer) = *(u_char *)w;
sum += answer;
}
sum = (sum >> 16) + (sum & 0xffff);
sum += (sum >> 16);
answer = ~sum;
return(answer);
}
相关推荐
android studio Socket客户端服务器通信 TCP/IP通信
android studio Socket客户端服务器通信 TCP/IP通信android studio Socket客户端服务器通信 TCP/IP通信android studio Socket客户端
Python实现UDP校验和计算详解与实战脚本
理想的校验和计算函数应具备良好的封装性与扩展性。其核心接口设计如下:"""计算UDP校验和参数:src_ip (str): 源IP地址,格式为 '192.168.1.1'dst_ip (str): 目的IP地址,格式为 '10.0.0.1'udp_header (bytes): UDP头部字节流(8字节),包含端口与长度字段payload (bytes): 应用层数据负载,可能为空返回:int: 16位校验和值(0x0000 ~ 0xFFFF)"""
异步socket套接字客户端实现代码实例
Socket,直译为“套接字”,是一种提供进程间通信的编程接口(API)。它不仅定义了网络通信的规则,还允许程序运行在不同主机上的进程之间进行数据传输。基于不同的传输层协议,Socket可以分为TCP Socket和UDP Socket。传输控制协议(TCP)是面向连接的、可靠的、基于字节流的传输层通信协议。为了确保数据的可靠传输,TCP实现了一系列的机制,主要包括如下几点:序列号和确认应答:TCP为发送的每一个字节数据分配一个序列号,并要求接收方对收到的数据发送一个确认应答(ACK)。
基于C++的多客户端socket通信
该项目基于C++实现了多客户端与服务器之间的TCP socket通信,包含完整的客户端和服务器端代码。客户端支持非阻塞连接、多线程收发数据,服务器可接受多个客户端连接并处理通信。通过Winsock A
C#利用Socket实现客户端之间直接通信
本文介绍了一个基于Socket的通信程序设计与实现,包括服务器端和客户端应用程序。服务器端能够处理多客户端连接,并支持单播与群发消息。客户端间可直接通信,且程序具备异常处理功能。


网络编程
