问题描述
我thread.sleep(3)跟thread.sleep(1)一样的速率,发送的只有60K/S,做视频传输的,所以需要每隔2毫秒3毫秒发送一个包,有没有同包遇到类似的问题?
解决方案
解决方案二:
首先去掉所有Thread.Sleep的代码看看最大的传输速度可不可以大于60KB另外和机器配置网卡都有关系
解决方案三:
这关键得看你的网卡CPU网速这些呀,而不是看代码代码都一样做视频传输的,所以需要每隔2毫秒3毫一个1024?你视频处理有这么快???相当于秒2-3秒秒一个帧。。。
解决方案四:
引用1楼jiaoshiyao的回复:
首先去掉所有Thread.Sleep的代码看看最大的传输速度可不可以大于60KB另外和机器配置网卡都有关系
我去掉了Thread.sleep速率是可以达到几M的,但是使用了Threadsleep后影响很大,最多只有60KB
解决方案五:
解决方案六:
解决方案七:
引用2楼wyd1520的回复:
这关键得看你的网卡CPU网速这些呀,而不是看代码代码都一样做视频传输的,所以需要每隔2毫秒3毫一个1024?你视频处理有这么快???相当于秒2-3秒秒一个帧。。。
拉灯你有什么好的方案?
解决方案八:
引用6楼wangjun8868的回复:
Quote: 引用2楼wyd1520的回复:
这关键得看你的网卡CPU网速这些呀,而不是看代码代码都一样做视频传输的,所以需要每隔2毫秒3毫一个1024?你视频处理有这么快???相当于秒2-3秒秒一个帧。。。拉灯你有什么好的方案?
这没有啥方案的呀,关键是,要每秒的帧数及清析度呀,还有压缩算法。这与Socket没啥关系的Socket快慢跟网速网卡有关,他要2毫秒发1024相当于1秒500K还是可以做到的
解决方案九:
做视频传输,应使用硬件发送
解决方案十:
Thread.Sleep在cpu使用率高的情况下毫无准确性可言windows10毫秒切换一次时间片整个系统中若是有其他很占用cpu的代码那么他会吧10毫秒占完才会切到下一个线程所以你白认为很精准吗?
解决方案十一:
引用8楼xuzuning的回复:
做视频传输,应使用硬件发送
用什么硬件发送?
解决方案十二:
Sleep以后计算与上次触发的时间差,发送数据量根据时间差确定
解决方案十三:
写了个简单的测试程序,没有任何业务逻辑,就每1毫秒发送1024的垃圾数据。测试了一下,1G数据无压力通过,速度远超60KB/s所以楼主的问题,多半是程序的其他问题导致的。
解决方案十四:
引用12楼CGabriel的回复:
写了个简单的测试程序,没有任何业务逻辑,就每1毫秒发送1024的垃圾数据。测试了一下,1G数据无压力通过,速度远超60KB/s所以楼主的问题,多半是程序的其他问题导致的。
麻烦上一下代码?这是我的测试代码privatevoidbutton3_Click(objectsender,EventArgse){System.Timers.Timertimer=newSystem.Timers.Timer();timer.Elapsed+=newElapsedEventHandler(DispalyTimeEvent);timer.Interval=1;timer.Start();timer.Enabled=true;}privatevoidDispalyTimeEvent(objecto,ElapsedEventArgse){stringstr="1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111";byte[]data=System.Text.ASCIIEncoding.ASCII.GetBy[code=csharp]
tes(str);//IPAddressipa=IPAddress.Parse("192.168.0.18");UdpClientudpclient=newUdpClient();udpclient.Connect("192.168.0.18",8001);udpclient.Send(data,data.Length);}[/code]
解决方案十五:
引用13楼p445726392的回复:
Quote: 引用12楼CGabriel的回复:
写了个简单的测试程序,没有任何业务逻辑,就每1毫秒发送1024的垃圾数据。测试了一下,1G数据无压力通过,速度远超60KB/s所以楼主的问题,多半是程序的其他问题导致的。麻烦上一下代码?这是我的测试代码[code=csharp]privatevoidbutton3_Click(objectsender,EventArgse){System.Timers.Timertimer=newSystem.Timers.Timer();timer.Elapsed+=newElapsedEventHandler(DispalyTimeEvent);timer.Interval=1;timer.Start();timer.Enabled=true;}privatevoidDispalyTimeEvent(objecto,ElapsedEventArgse){stringstr="1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111";byte[]data=System.Text.ASCIIEncoding.ASCII.GetBy[code=csharp]
tes(str);//IPAddressipa=IPAddress.Parse("192.168.0.18");UdpClientudpclient=newUdpClient();udpclient.Connect("192.168.0.18",8001);udpclient.Send(data,data.Length);}[/code]
时间: 2024-10-03 02:26:16