当前位置:  开发笔记 > 编程语言 > 正文

设置套接字的本地端点

如何解决《设置套接字的本地端点》经验,为你挑选了2个好方法。

我需要创建一个连接到服务器进程的套接字,但必须限制为使用指定的本地适配器.默认行为是尽可能使用它,但我需要确保给定的套接字只尝试(例如)LAN连接,如果wifi和LAN都可用.

我正在使用C#和.NET 2.0.

干杯



1> Frank Bollac..:

这个Socket.Bind(EndPoint localEP)方法是你的朋友.看看这里在MSDN上的细节.

要查看所有本地适配器及其类型 System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces()



2> Pat..:

供其他人参考,我在使用Bind时遇到了问题,因为我正在使用UdpClient类并访问其内部Socket(通过UdpClient.Client),无论我如何尝试进行绑定,都会抛出SocketException。我的解决方法是先创建并绑定Socket,然后将其分配给UdpClient实例:

using (var socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp))
{
    var endPoint = new IPEndPoint(ip, port);
    socket.Bind(endPoint);
    using (var client = new UdpClient() {Client = socket})
    {
        var destinationIP = IPAddress.Broadcast;
        client.Connect(destinationIP, port);
        client.Send(bytes, bytes.Length);
    }
}

推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有