基于udp的丢包率统计
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <winsock.h>
void main()
{
SOCKET socket1;
InitWinsock();
struct sockaddr_in local;
struct sockaddr_in from;
int fromlen =sizeof(from);
local.sin_family=AF_INET;
local.sin_port=htons(1000); ///监听端口
local.sin_addr.s_addr=INADDR_ANY; ///本机
socket1=socket(AF_INET,SOCK_DGRAM,0);
bind(socket1,(struct sockaddr*)&local,sizeof local);
while (1)
{
char buffer[1024]="\0";
printf("waiting for message from others-------------\n");
if (recvfrom(socket1,buffer,sizeof buffer,0,(struct sockaddr*)&from,&fromlen)!=SOCKET_ERROR)
{
printf("Received datagram from %s--%s\n",inet_ntoa(from.sin_addr),buffer);
////给cilent发信息
sendto(socket1,buffer,sizeof buffer,0,(struct sockaddr*)&from,fromlen);
}
Sleep(500);
}
closesocket(socket1);
}
对于这样一段程序,是UDPserver程序,我想请教各位点问题啊!
第一个:就是这个InitWinsock();运行总说没定义,是不是我没包含什么头文件啊!
第二个:我如果想统计丢包率,肯定要发送一定数量N的数据包,我如何发送呢!我的编程思路大致如下,利用程序A发送100个数据包到程序B,统计程序B接收到的数据包,就可以计算出丢包率,我现在对包的概念还不是很懂!例如我写一段字符“我是。。”发送出去,这是代表多少个数据包呢?我如何发送100个数据包呢?只是知道通过循环实现
第三个:我想控制发送速度,如何控制呢!
如果可能给在程序上帮我改改吧,能做一个给我最好,我的邮箱caopeipei_only1@163.com!万分感谢,如果不行,您能给我解释下我不懂得,我也同样感谢