当前位置: 首页 > 知识库问答 >
问题:

C#UDP发送到缓冲区

毛声
2023-03-14

我正在制作一个应用程序,将发送1MB长度的数据。Bellow是我的测试代码,它只是发送一个1MB的简单字节数组,然而,即使当我尝试将发送缓冲区增加到1MB或更高时,它也不断抛出Bellow异常。

private void sendattack(string ip, int port)
    {
        IPEndPoint RemoteEndPoint = new IPEndPoint(IPAddress.Parse(ip), port);
        Socket serversoc = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
        char[] data = new char[100000];
        var send = Encoding.ASCII.GetBytes(data);
        serversoc.SendTo(send, send.Length, SocketFlags.None, RemoteEndPoint);
    }

system.net.sockets.socketexception未处理errorcode=10040 hresult=-2147467259 message=数据报套接字上发送的消息大于内部消息缓冲区或其他网络限制,或用于接收数据报的缓冲区小于数据报本身本地errorcode=10040 source=system.stacktrace:在system.net.sockets.socket.sendto(字节[]缓冲区,Int32偏移量,Int32大小,SocketFlags SocketFlags,EndPoint remoteEP)在system.net.sockets.socket.sendto(字节[]缓冲区,Int32大小n fIgnoreVisible)位于system.windows.forms.control()位于system.windows.forms.control()位于system.windows.forms.control()位于system.windows.forms.control()位于system.windows.forms.control()位于system.windows.forms.wndproc(消息&m)位于system.windows.forms.scrollablecontrol.wndproc(消息&m)位于system.windows.forms.wmshowwindows(消息&m)位于

共有1个答案

颛孙国源
2023-03-14

错误是不言自明的:您不能发送这么大的数据包。UDP数据包的理论最大大小约为64KB,在internet上安全发送而不产生碎片的大小小于1KB:internet上最大的安全UDP数据包大小是多少

你需要把事情变小。

 类似资料:
  • 我正在Linux上编写一个C应用程序。我的应用程序有一个 UDP 服务器,它在某些事件上向客户端发送数据。UDP 服务器还会收到来自客户端的一些反馈/确认。 为了实现这个应用程序,我使用了一个UDP套接字(例如< code>int fdSocket)来发送和接收来自所有客户端的数据。我将这个socked绑定到端口8080,并将套接字设置为非阻塞模式。 我创建了两个线程。在一个线程中,我等待某个事件

  • 然而,当我通过UDP实现它时,我错过了这种方法

  • 我问过这个问题https://stackoverflow.com/questions/32735189/sending-files-from-java-server-to-unity3d-c-sharp-client但我发现,通过内置操作在Java和C之间发送文件并不是最佳的解决方案,因为我还需要其他消息,而不仅仅是文件内容。 因此,我尝试了使用原型,因为它速度快,并且可以独立于平台序列化/反序列

  • 问题内容: 我在linux上有一个Java应用程序,它可以打开UDP套接字并等待消息。 在高负载下运行了几个小时之后,有一个数据包丢失,即数据包被内核接收,但不是由我的应用程序接收(我们在嗅探器中看到丢失的数据包,在netstat中看到UDP数据包丢失,我们没有看到这些数据包)在我们的应用日志中)。 我们尝试扩大套接字缓冲区,但这并没有帮助-我们早些时候就开始丢失数据包,仅此而已。 对于调试,我想

  • 问题内容: 我碰到一行,命令的输出已完全缓冲。这是什么意思? 问题答案: 在线C11标准 7.21.3 / 3: 当流没有 缓冲时 ,字符应尽快从源或目标出现。否则,字符可能会作为块被累积并传输到主机环境或从主机环境传输。当流被 完全缓冲时 ,打算在填充缓冲区时将字符作为块与主机环境进行传输。当流被 行缓冲时 ,当遇到换行符时,字符打算作为块与主机环境进行传输。此外,当填充缓冲区,在无缓冲流上请求

  • 本文向大家介绍python UDP(udp)协议发送和接收的实例,包括了python UDP(udp)协议发送和接收的实例的使用技巧和注意事项,需要的朋友参考一下 需要建立2个文件,一个作为客户端,一个作为服务端 文件一 作为客户端client,文件二作为服务端server udp的特点是不需要建立连接 文件一客户端 文件二服务端 注意:先运行文件二在运行文件一 以上这篇python UDP(ud