局域网用UDT传输数据速度太慢,请高手指点,如何提速?

lan19900512 2012-12-24 12:06:43
在100Mbps的局域网中使用UDT传输数据。我用的UDT版本是4.10。使用UDT::epoll
数据收发双方是使用会合连接。使用流式UDT套接字,SOCK_STREAM。
然后分为两个线程,一个线程中使用了UDT::epoll_wait来等待有数据收发事件的UDT套接字,然后将该套接字传递给另外一个线程,在另外一个线程里处理数据接收和发送。
多次测试,发现数据传输最大速度4MB/s,理论上至少应该是9MB/s啊。这个速度明显不对啊。

数据发送端循环发送数据直到没有数据可发送,或者发送缓冲区已满。
int iSendDataSize;
while (iSendDataSize > 0)
{
//循环发送数据
iSendDataSize = UDT::send();
}

数据接收端也是这样,循环接收。
while (iSendDataSize > 0)
{
//循环接收数据
iRecvDataSize = UDT::recv();
}


请各路高手指点,有没有更好的思路,或者一些关键的细节。

我在想是不是UDT::epoll机制的影响,使得速度降低。但是有不太确定,不知道自己是不是有什么地方没用好。

在线等,欢迎讨论。
...全文
392 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lan19900512 2012-12-24
  • 打赏
  • 举报
回复
没有啊,我用qq传数据,都是10MB/s。没想通
UDX协议 2012-12-24
  • 打赏
  • 举报
回复
有些局域网,也有可能,比较繁忙,有可能只有这速度。 你可以用UDX(qq 24508609)试试.
UDX协议 2012-12-24
  • 打赏
  • 举报
回复
这是UDT本身带宽预测失败,在你的网络里,可以说目前无解,除非他改代码。

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧