📄 cudp_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 + -