【问题标题】:How to specify source port of a UdpPacket?如何指定 UdpPacket 的源端口?
【发布时间】:2011-03-18 21:00:30
【问题描述】:

我想将 UdpPacket 发送到特定的远程主机(我已经知道公共 IP 和端口)。 我想使用 C# 的 UdpClient 类。

static int Main()
{
     UdpClient client = new UdpClient();
     IPEndPoint remoteEP = new IPEndPoint(IPAddress.Parse("1.2.3.4"), 9999);

     byte[] data = GetData();
     client.Send(data, data.Length, remoteEP);
}

发送数据包时,UdpClient 会自动选择一个可用端口。我想手动设置发送数据包的端口。

提前感谢您的帮助!

【问题讨论】:

    标签: c# networking network-programming udpclient


    【解决方案1】:

    尝试在创建UdpClient 时指定端点:

    UdpClient client = new UdpClient(localEndpoint);
    

    编辑:请注意,您也可以只指定端口号:

    UdpClient client = new UdpClient(localPort);
    

    这可能有点简单:)

    【讨论】:

    • 哇,谢谢!!!有用!我认为只有当你想接收消息时才能使用这个构造函数。 UdpClient = new UdpClient(new IPEndPoint(IPAddress.Parse("0.0.0.0"), 9999));工作
    • @youllknow:诚然,这有点猜测:) 我刚刚也用一种可能更简单的方法编辑了我的答案。值得一试...
    • hm.. 有没有办法不只是通过构造函数来切换 srcPort?
    • @kchoi:我不知道。
    • 我找到了答案。 client.Client.bind(IPEndPoint) 会做到的。
    猜你喜欢
    • 2012-02-09
    • 1970-01-01
    • 2012-04-21
    • 1970-01-01
    • 2012-04-16
    • 2011-05-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多