设置套接字的本地端点我需要创建一个连接到服务器进程的套接字,但必须限制使用指定的本地适配器。默认行为是尽可能使用它,但我需要确保给定套接字仅尝试(例如)LAN连接,前提是wifi和LAN都可用。我正在使用C#和.NET2.0。干杯Socket.Bind(EndPointlocalEP)方法是你的朋友。请参阅MSDN上的详细信息。要获取所有本地适配器及其类型,请查看System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces()作为其他人的参考,我在使用Bind时遇到问题,因为我正在使用UdpClient类并访问其内部Socket(通过UdpClient.Client),无论我如何尝试绑定,它都会抛出SocketException。我的解决方法依赖于首先创建和绑定套接字,然后将其分配给UdpClient实例:);套接字。绑定(端点);使用(varclient=newUdpClient(){Client=socket}){vardestinationIP=IPAddress.Broadcast;client.Connect(目标IP,端口);client.Send(bytes,bytes.Length);你能尝试使用bind()函数吗?也许这会成功。在msdn上,我发现:(http://msdn.microsoft.com/en-us/library/ms737550(VS.85).aspx)请注意,在随后调用监听函数之前,未连接的套接字需要绑定。它通常用于绑定到面向连接(流)或无连接(数据报)的套接字。bind函数也可用于绑定到原始套接字(套接字是通过调用类型参数设置为SOCK_RAW的套接字函数创建的)。在发送操作之前对connect、ConnectEx、WSAConnect、WSAConnectByList或WSAConnectByName函数的后续调用之前,也可以在未连接的套接字上使用绑定函数。当通过调用socket函数创建一个socket时,它存在于命名空间(地址族)中,但没有被赋予名称。使用bind函数通过将本地名称分配给未命名的套接字来为套接字建立本地关联。使用Internet地址族时,名称由三部分组成:地址族。主机地址。标识应用程序的端口号。以上就是C#学习教程的全部内容:设置socket的本地端点。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
