在接收数据包时遇到一些问题.
我可以接收和读取传入的数据包,但我想我不会与任何主机握手.
我只想在收到答案的情况下将数据包发送到具有开放端口的远程计算机,以查看TTL(生存时间)和窗口大小.
有谁知道错误在哪里? (我对C编程知之甚少)
码:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
struct pseudohdr {
u_int32_t src_addr;
u_int32_t dst_addr;
u_int8_t padding;
u_int8_t proto;
u_int16_t length;
};
struct data_4_checksum {
struct pseudohdr pshd;
struct tcphdr tcphdr;
char payload[1024];
};
unsigned short comp_chksum(unsigned short *addr, int len) {
long sum = 0;
while (len > 1) {
sum += *(addr++);
len -= 2;
}
if (len > 0)