请问大家使用C# SOCKET 每隔一毫秒发送一个包(1024字节)速率是多少

问题描述

我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

请问大家使用C# SOCKET 每隔一毫秒发送一个包(1024字节)速率是多少的相关文章

求bat批处理向http://localhost每隔1分钟发送一个http请求的代码

问题描述 求bat批处理向http://localhost每隔1分钟发送一个http请求的代码 求大神帮我写个批处理命令实现:向http://localhost每隔1分钟发送一个http请求的功能 解决方案 @echo off set str=""%time:~65%"" :: 标签,用于goto跳转 :next1 :: 判断str是不是空,如果不是则执行下边的语句 if ""%str%""==""00.0

对象-请问各位,我这样理解访问者模式正确吗,一个简单的例子

问题描述 请问各位,我这样理解访问者模式正确吗,一个简单的例子 package test; public class Client{ //数据对象二 顾客 public static void main(String[] args) { //当顾客进饭店吃饭,他不会直接跟厨师打交道, //1.饭店主要是炒菜,这时,厨师会炒很多菜 但是不知道炒哪个菜, 厨房与顾客 不具备炒菜的功能, //所以炒菜可以是厨师的功能,但是需要一个中间人来告诉厨师炒什么菜,那么我们就定义一个菜单,相当于访问者,访问厨师

请问java高手,spring如何解析oracle返回的数据包,当记录集嵌套记录集时,如何解析呢

问题描述 请问java高手,spring如何解析oracle返回的数据包,当记录集嵌套记录集时,如何解析呢 以下存储过程,返回的记录集的字段又包含记录集,resultlist的属性Property是个记录集,在这种情况下如何解析所有信息呢?type PropertyList is table of Property index by binary_integer;---PropertyList对象,表Property的记录FUNCTION FUNC_Wechat_ClaimSearchList(

socket-C#Socket编程,能实现客户端发送一个txt文件即可,怎么写?

问题描述 C#Socket编程,能实现客户端发送一个txt文件即可,怎么写? C#Socket编程,只写客户端(127.0.0.1:5555)能实现发送一个txt文件到服务器,文件目录可以直接指定,怎么写呢?大神们? 解决方案 只写客户端肯定是不行的,因为文件传输一般需要额外的信息在服务器才能完成文件的恢复:1)文件名,当然这个可以在服务端重起名.但这样就不好和客户端对应的了!2)文件在客户端传输时需要分包,所以在服务器端需要和包.3)传输过程一般为了防止数据错误,会有 CRC.等等,这些都需要

socket客户端有几种发送消息到服务端的方式,服务端应该怎么取出这个值

问题描述 socket客户端有几种发送消息到服务端的方式,服务端应该怎么取出这个值 场景,我有一个服务端,客户端是超级网口USR-K3的TCPClient.K3发送消息给我服务端时,已经跟我建立连接,服务端已经看到了它的IP和端口,但是在取出K3发过来的值时,显示为"null".求大神告知是不是我取值的方法和K3放值得方法不一样才取不出值. 解决方案 public void run() { try { // 采用循环不断从Socket中读取客户端发送过来的数据 while (true)

通信-socket如何实现其中的发送回调函数和完成发送的代码功能

问题描述 socket如何实现其中的发送回调函数和完成发送的代码功能 c#socket异步通信中的SendCallback类包含在静态类中如何实现其中的发送回调函数和完成发送的代码功能 以及错误如何解决 using Newtonsoft.Json; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Net.Socket

socket服务端向客户端发送字节数组消息时客户端无法接收问题

问题描述 socket服务端向客户端发送字节数组消息时客户端无法接收问题

socket异步 强迫关闭-Socket异步传输远程主机强迫关闭了一个现有的链接

问题描述 Socket异步传输远程主机强迫关闭了一个现有的链接 class AsyncProgram { static Thread thead = null; static Thread theadclient = null; static int port = 12345; static Socket server = null; static Socket client = null; static int buffersize = 40960000; static void Main()

io流-socket 客户端读取服务端发送的 序列化流 报错

问题描述 socket 客户端读取服务端发送的 序列化流 报错 客户端 服务端 请大神指教,实在找不到原因了,对这块儿也不是很熟 解决方案 socket调用了一次getInputStream时,但又需要把这个socket的相关信息作为参数传递给别的对象时,应注意:不用直接把socket传过去,应该把对应的ObjectInputStream或ObjectOutputStream对象传递过去. 解决方案二: 直接读写Object,使用java自己的序列化不可以吗?