|
为什么同一个程序,都是在linux上对xp发数据包,我的xp机器就重启了,我同事的却没事
#include <stdio.h>
#include <netdb.h>
#include <sys/types.h>
#include <sys/time.h>
#include <netinet/in.h>
#include <linux/ip.h>
#include <netinet/tcp.h>
#include <netinet/if_ether.h>
#include <errno.h>
#include <linux/if.h>
#define PORT 8888
#define ADDR "10.0.2.50"
unsigned long getaddr(char *name) {
struct hostent *hep;
hep=gethostbyname(name);
if(!hep) {
fprintf(stderr, "Unknown host %s\n", name);
exit(1);
}
return *(unsigned long *)hep->h_addr;
}
int main()
{
int ssock;
char buf[1500];
int n = 1000;
struct sockaddr_in sin;
ssock=socket(AF_INET, SOCK_RAW, IPPROTO_RAW);
sin.sin_family=AF_INET;
sin.sin_port=PORT;
sin.sin_addr.s_addr=getaddr(ADDR);
memset(buf, 0, sizeof(buf));
buf[0] = 'a';
int size = 0;
while (n) {
if((size = sendto(ssock, buf, strlen(buf), 0,
(const struct sockaddr *)&sin, sizeof(sin))) < 0) {
printf("Error sending syn packet.\n"); perror("");
exit(1);
}
n--;
}
}
本来想没事自己写着玩的,看看数据包里边的内容,可是总重启也看不了啊
小弟刚接触网络,经验比较少,哪位高手帮我解释一下,谢谢啦!!!
|