資源簡介
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法三元式
評論
共有 條評論