⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cudp_linux.c

📁 linux下的网卡测速程序
💻 C
字号:
#include <netinet/in.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/stat.h>#include <fcntl.h>#include <termios.h>#include <unistd.h>#include <stdio.h>#include <sys/io.h>#include <sys/mman.h>#include <errno.h>#include <time.h>#include <arpa/inet.h>#define MAX_BUF_SIZE 20000#define PORT 100char msg[MAX_BUF_SIZE];char *SERVERIP="192.168.1.199";struct w_header{	unsigned short seq_num;	unsigned short hour;	unsigned short min;	unsigned short second;	unsigned short ms;	unsigned short rate;	unsigned short tx_packet;	unsigned short last_flag;};int main(int argc,char *argv[]){ 	int sockfd,i; 	struct sockaddr_in addr; 	struct w_header * my_header; 	int number,length,rate;		rate=0;		if (argc==1) 	{		number=2000;		length=1024; 				}	       	if (argc==2)        {				length=1024;	/*	printf("param 1 is %s\n",*(argv+1)); 			char test[]="123";*/                sscanf(argv[1], "%d", &number); 		 	}       	if (argc==3)        {                sscanf(argv[1], "%d", &number);		sscanf(argv[2], "%d", &length); 	}        if (argc==4)        {                sscanf(argv[1], "%d", &number);                sscanf(argv[2], "%d", &length);		sscanf(argv[3], "%d", &rate);        }	if (argc>4)        {                sscanf(argv[1], "%d", &number);                sscanf(argv[2], "%d", &length);		sscanf(argv[3], "%d", &rate);		SERVERIP=argv[4];		        }        		printf("number is %d, length is %d\n",number,length);		if (length>MAX_BUF_SIZE)		printf("length is too large, use the default value %d\n",MAX_BUF_SIZE);		/*number=1000;length =1000;*/	if ((number<0) ||(length<0) || (number>10000))	{		printf("intput error\n");		exit(1);	}	else	{	} 			my_header = (struct w_header *)msg;		my_header->rate=rate;	sockfd=socket(AF_INET,SOCK_DGRAM,0);	if(sockfd<0){    		fprintf(stderr,"socket error\n");    		exit(1);  	}    	bzero(&addr,sizeof(addr));  	addr.sin_family=AF_INET;  	addr.sin_port=htons(PORT);  		if(inet_aton(SERVERIP,&addr.sin_addr)<0){    		fprintf(stderr,"inet_aton error.\n");    		exit(1);  	}    	for(i=0;i<number;i++)  	{		my_header->seq_num=i;		my_header->tx_packet=number;				if ((i+1)==number)			 my_header->last_flag=0x5555;		else			 my_header->last_flag=0x1111;				if (sendto(sockfd,msg,length,0,(struct socketaddr *)&addr,sizeof(addr))==-1)		{				printf("send error\n");			perror("sendto");		}		if (!(i%200))		printf("send %i packet\n",i);  	}  		close(sockfd);  	return 2;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -