简单的使用UDP测试网络丢包及收发效率,发现一个奇怪的现象,如果网络测试仪加Linux下测试程序测试则丢包很少,提高网络速度丢包的现象也不是很明显。
但使用网络测试仪加Windows下的测试程序发现在网速不是很快的情况下丢包不多,效率还可以。但提高网速后,发现丢包现象较之Linux多了非常多。不解。各位有熟悉情况的吗?给出帮助立即揭帖。附简单的测试代码
struct sockaddr_in local;
struct sockaddr_in from;
int recvlength;
int fromlen =sizeof(from);
local.sin_family=AF_INET;
local.sin_port=htons(5000); ///¼àÌý¶Ë¿Ú
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[2000]="\0";
if ((recvlength=recvfrom(socket1,buffer,2000,0,(struct sockaddr*)&from,&fromlen))!=-1)
{
sendto(socket1,buffer,recvlength,0,(struct sockaddr*)&from,fromlen); }
else
;//printf("Data lost");
} closesocket(socket1);
但使用网络测试仪加Windows下的测试程序发现在网速不是很快的情况下丢包不多,效率还可以。但提高网速后,发现丢包现象较之Linux多了非常多。不解。各位有熟悉情况的吗?给出帮助立即揭帖。附简单的测试代码
struct sockaddr_in local;
struct sockaddr_in from;
int recvlength;
int fromlen =sizeof(from);
local.sin_family=AF_INET;
local.sin_port=htons(5000); ///¼àÌý¶Ë¿Ú
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[2000]="\0";
if ((recvlength=recvfrom(socket1,buffer,2000,0,(struct sockaddr*)&from,&fromlen))!=-1)
{
sendto(socket1,buffer,recvlength,0,(struct sockaddr*)&from,fromlen); }
else
;//printf("Data lost");
} closesocket(socket1);
解决方案 »
- 请问个对你们简单,对我来说,困难的问题
- visual C++ 2008里面建立MFC项目是不是没有可视化效果啊?
- 请问谁有Vs2003 开发fmc 的教程啊,请给我一份
- 【求助】MFC程序运行出错,请各位帮忙看一下是哪里错了。
- 找不到MSCHART控件
- 一个关于CFile的简单问题。。。。
- 散分:远线程注入DLL的代码
- 在多文档 的应用程序中,CChildFrame与CMainFrame的关系怎样?
- 如何通过扩展名得到该扩展名所对应的图标?
- 求助:卸载程序为什么双击它执行的时候能删除自身,用快捷方式执行就不能?
- 大家能介绍一下自己刚参加编程或软件设计师工作的月薪吗?最好市广州活杭州的,小弟先谢了!
- 如何得到系统或者硬件的特征码
不然你就用TCP吧
只是做性能测试,就是为了看速度快时会丢失多少包,做校验还有什么作用?
gdy119(夜风微凉):
这样说来Linux的协议栈效率比Windows要高很多了?