c# 如何建立UDP套接字连接

标签 c# sockets udp

未处理的异常:System.Net.Sockets.SocketException:引用的对象类型不支持尝试的操作

我尝试将 ip 映射到 V6 相同的异常

namespace ConsoleApp1
{
    using System.Net;
    using System.Net.Sockets;
    using static Tools;

    class Program
    {

        static void Main(string[] args)
        {
            Send("Hello from Server");

            Socket socket = new Socket(GetRemote().AddressFamily, SocketType.Dgram, ProtocolType.Udp);

            socket.Bind(GetRemote());

            socket.Listen(10);
        }
    }

    static class Tools
    {
        private static readonly EndPoint _REMOTE = new IPEndPoint(Dns.GetHostEntry(Dns.GetHostName()).AddressList[0], 11039);

        public static void Send(string message)
        {
            Console.Out.Write(message + Console.Out.NewLine);
        }

        public static EndPoint GetRemote()
        {
            return _REMOTE;
        }
    }
}

最佳答案

如果您调试代码,您会发现问题发生在 socket.Listen(10); 中。称呼。基本上你不应该使用 Listen使用 UDP 连接。 您可以使用 RecieveFrom函数代替。

参见https://learn.microsoft.com/en-us/dotnet/api/system.net.sockets.socket?view=netframework-4.7.2

关于c# 如何建立UDP套接字连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54551856/

相关文章:

c# - 使用编辑器模板 MVC 进行日期时间格式化

node.js - Feathersjs Node 套接字客户端未连接

c++ - 如何将boost udp套接字绑定(bind)到特定接口(interface)

C UNIX - 如何在服务器端使用多个套接字接收UDP消息以过滤它们?

PHP 能够处理多个 TCP 连接吗?

c# - 字符串未转换为整数

c# - 执行非查询 : Connection property has not been initialized?

c# - 替换字符串中的多个单词

c - 发送套接字 c ctrl+c 行为

tcp - 当某些协议(protocol)直接通过 IP 时,为什么还需要 UDP?