资源简介
udp丢包率统计
代码片段和文件信息
#include
#include
#include
#include
//#include
#define MAXLINE 500 //定义文本队列长度
#define SERV_PORT 7 //服务器端口号
#pragma comment(lib“ws2_32.lib“)
//void printerr();
//socket初始化
void StartUp()
{
WSADATA wsaData;
WORD version=MAKEWORD(20);
int ret=WSAStartup(version&wsaData);
if(ret!=0)
printf(“初始化失败“);
}
//free the socket
void CleanUp()
{
if(WSACleanup()!=0)
printf((char*)WSAGetLastError());
}
//获取用户输入并与服务器通信
void dg_cli_simple(FILE*fpint sockfdLPSOCKADDR pservaddrint servlen)
{
char sendline[20]recvline[MAXLINE+1];
char pre1[20]=“aaaaaaghijklmnsssss“pre2[20]=“bbbbbbhijklmnottttt“pre3[20]=“ccccccijklmnopvvvvv“;
sockaddr_in servaddr;
int ncount=0miss=0;
char ndg[500];//待循环发送的数据
//memset(sendline0500);//清0 sendline
memset(recvline0MAXLINE);//清0 recvline
for(int i=0;i<300;i++)
{
memset(sendline0sizeof(sendline));
switch(i%10){
case(0):
case(3):
case(6):memcpy(sendlinepre1sizeof(sendline));break;
case(1):
case(4):
case(7):
case(9):memcpy(sendlinepre2sizeof(sendline));break;
case(2):
case(5):
case(8):memcpy(sendlinepre3sizeof(sendline));break;
/*case(3):memcpy(sendlinepre1sizeof(sendline));break;
case(4):memcpy(sendlinepre2sizeof(sendline));break;
case(5):memcpy(sendlinepre3sizeof(sendline));break;
case(6):memcpy(sendlinepre1sizeof(sendline));break;
case(7):memcpy(sendlinepre2sizeof(sendline));break;
case(8):memcpy(sendlinepre3sizeof(sendline));break;
case(9):memcpy(sendlinepre2sizeof(sendline));
break;*/
}
//printf(“\r\n\r\n“);
//cout<<“客户端第“< //printf(“客户端发送数据:%s\r\n“&sendline);
//count++;
//sendline[20]=“abcdefghijklmnopqrs“;
//memset(sendline+sizeof(‘a‘)661);
//memset(sendline+2‘abcd‘sizeof(‘abcd‘));//置sendline fgets(sendlineMAXLINEfp)!=NULL
//printf(“%d“sizeof(好));
//将用户输入发送给服务器
if(sendline==“EOF“)
return;
//* 将读入行发送到服务器套接口
if((sendto(sockfdsendlinestrlen(sendline)0pservaddrservlen))==SOCKET_ERROR)
{
printf(“SEND error“);
// printerr();
system(“pause“);
return;
}
// len = servlen;
//*从读入回射读入字节数为n 不关心从何处读入
if((n=recvfrom(sockfdrecvlineMAXLINE0NULL NULL))==SOCKET_ERROR)
{
printf(“\r\n接收数据错误\r\n“);
miss++;
//printerr();
//system(“pause“);
//return;
}
else
if(n>0)
{
recvline[n]=0;
//if(count>0)printf(“客户端收到数据:“);
//if(fputs(recvlinestdout)==EOF)
//printf(“fputs error“);
}
memset(&servaddr0sizeof(servaddr));
}
printf(“共发送%d数据报,丢失%d个,丢包率为%f“imiss(float)miss/(float)i);
system(“pause“);
}
/*while(fgets(sendlineMAXLINEfp)!=NULL)// 从键盘读入一行
{
count++;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-07-17 15:25 udp丢包率\
文件 5117 2011-11-08 15:12 udp丢包率\丢包率数据报回射 client.cpp
文件 2542 2011-11-08 14:57 udp丢包率\丢包率数据报回射 server.cpp
- 上一篇:最新易语言发送WPE封包
- 下一篇:编译原理课程设计for循环LR法三元式
评论
共有 条评论