在正常情况下,2个程序(server,client)分别运行在2台计算机上,但有时用户也会将2个程序安装在一个机器上使用。
我在程序中设置了重用的代码:方法一:
UCR = new UdpClient();
UCR.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, 1);
UCR.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, 1);
UCR.Client.Bind(Sender);方法二:
UCR = new UdpClient();
IPAddress[] ips = Dns.GetHostAddresses(Dns.GetHostName());
Socket Listener = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
Listener.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, 1);
Listener.Bind(new IPEndPoint(IPAddress.Any, SendPort));
MulticastOption multicastOption = new MulticastOption(ips[0]); 
Listener.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, multicastOption);
UCR.Client=Listener;
出现的问题是,2个程序发送的数据全被第2个启动的程序接收,第1个程序接收不到任何数据(自己的和另一个程序的)。请大家帮帮忙?