随笔分类 - linux c 网络编程
ARP 扫描主机学习笔记
摘要:1.通用套接字地址结构与具体套接字地址结构之间可相互转化 1)通用转具体,某些函数将结果存储在通用套接字地址结构中,这时将通用转换为具体,具体通过访问成员名可以方便的得到结果。 2)具体转通用,为了消除不同具体的地址结构之间的差异,多发生在传递参数的时候 2.mac地址不需要进行大小端转化,构造ma
阅读全文
套接字网络编程学习笔记
摘要:1.发送方需要调用htons()或htonl()对发送的数据转序,接收方在从套接字缓冲区中读取数据之后,要调用ntohs()函数或ntohl()对接收到的数据进行转序,字符型数据除外,因为字符占一个字节,字节序指的是多字节数据的存储或发送顺序。 2.tcp程序的端口号与udp程序的端口号是独立的,比
阅读全文
linux c网络编程之函数
摘要:1. struct protoent *protocol=getprotobyname(char *p); 功能:通过协议名获取协议类型信息 解释:p为字符串指针,指向一个协议名,如icmp,struct protoent及函数在<netdb.h>中定义,protocol->p_proto为协议类型
阅读全文
校验和函数
摘要:static int icmp_cksum(unsigned char *data, int len) { int nleft = len; uint16_t *data_tmp = (uint16_t *)data; int sum = 0; uint16_t tmp = 0; while(nle
阅读全文
icmp_ping学习笔记
摘要:1.用字符串指针做为发送缓冲区和接收缓冲区的指针; 2.icmp报文类型结构体可自行定义,也可用<netinet/ip_icmp.h>中定义好的strcut icmp结构体; 3.ip_hl*4表示ip头部长度; 4.剥离头部的含义:让数据部分的指针指向数据部分,找到数据部分所在的内存地址; 5.原
阅读全文
浙公网安备 33010602011771号