c# UDP发送缓冲区

本文关键字:缓冲区 UDP | 更新日期: 2023-09-27 18:05:08

我正在制作一个将发送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 = 10040HResult = -2147467259Message=在数据报套接字上发送的消息大于内部消息缓冲区或其他网络限制,或者用于接收数据报的缓冲区小于数据报本身NativeErrorCode = 10040源=系统加:在System.Net.Sockets.Socket。SendTo(Byte[] buffer, Int32偏移量,Int32大小,SocketFlags, SocketFlags, EndPoint remoteEP)在System.Net.Sockets.Socket。SendTo(Byte[] buffer, Int32大小,SocketFlags, SocketFlags, EndPoint remoteEP)在qnet.svchost。sendattack(String ip, Int32端口)在c:' users ' user ' onedriver ' documents ' visual Studio 2013'Projects'qnet'qnet'svchost.cs:第84行在qnet.svchost。在c:' users ' user ' onedriver ' documents ' visual Studio 2013'Projects'qnet'qnet'svchost.cs:第27行中加载(对象发送方,EventArgs e)在System.Windows.Forms.Form。OnLoad (EventArgs e)在System.Windows.Forms.Form.OnCreateControl ()在System.Windows.Forms.Control。CreateControl(布尔fIgnoreVisible)在System.Windows.Forms.Control.CreateControl ()在System.Windows.Forms.Control.WmShowWindow (Message&米)在System.Windows.Forms.Control.WndProc (Message&米)在System.Windows.Forms.ScrollableControl.WndProc (Message&米)在System.Windows.Forms.Form.WmShowWindow (Message&米)在System.Windows.Forms.Form.WndProc (Message&米)在System.Windows.Forms.Control.ControlNativeWindow.OnMessage (Message&米)在System.Windows.Forms.Control.ControlNativeWindow.WndProc (Message&米)在System.Windows.Forms.NativeWindow。DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)InnerException:

c# UDP发送缓冲区

这个错误是不言自明的:您不能发送那么大的数据包。理论上UDP报文的最大大小约为64KB,而在互联网上安全发送而不分片的大小小于1KB:互联网上最大的安全UDP报文大小是多少

你需要把东西变小。