相关疑难解决方法(0)

UDP服务器中接收数据包的连接重置

我正在研究一个服务器应用程序(C#,.NET 4.0),它需要每秒处理数千个UDP数据包.所以我决定SocketAsyncEventArg实现服务器.

我面临的问题是我的实现只收到一个数据包然后我得到"ConnectionReset"错误(我从未想过我会得到这个错误,因为UDP是无连接的).这是我的测试实现:

using System;
using System.Net;
using System.Net.Sockets;

static class Program
{
    static void Main(string[] args)
    {
        UdpEchoServer.Start();

        while (true)
        {
            Console.ReadLine();
            SendPacket();
        }
    }

    static void SendPacket()
    {
        Console.WriteLine("SendPacket");
        var c = new UdpClient();
        c.Send(new byte[5], 5, new IPEndPoint(IPAddress.Parse("127.0.0.1"), 445));
        c.Close();
    }
}

static class UdpEchoServer
{
    static Socket mSocket;
    static byte[] mBuffer;
    static SocketAsyncEventArgs mRxArgs, mTxArgs;
    static IPEndPoint mAnyEndPoint, mLocalEndPoint;

    public static void Start()
    {
        mAnyEndPoint = new IPEndPoint(IPAddress.Any, 0);
        mLocalEndPoint = new IPEndPoint(IPAddress.Any, 445); …
Run Code Online (Sandbox Code Playgroud)

.net c# sockets asynchronous

6
推荐指数
1
解决办法
3592
查看次数

标签 统计

.net ×1

asynchronous ×1

c# ×1

sockets ×1