在同一子网内,我在用组播,其他程序也在用组播,我怎么查询一个未用的组播地址呢?
比如:如果别人已经用224.224.224.224这个地址了,如果我也用的话,别人往这发数据不是也同时发给我的吗?
谢谢!
比如:如果别人已经用224.224.224.224这个地址了,如果我也用的话,别人往这发数据不是也同时发给我的吗?
谢谢!
解决方案 »
- DataGridView中用DataSet实现数据显示的方法?
- C# 判断条件后 操作语句求助
- 几段代码,求注释!!
- C#读写文件的中文路径问题
- 求条SQL语句
- 关于服务器端验证控件
- 一个Form上有几个listview.有一个菜单.当菜单时要根据在哪个listview上对相应的做清除操作.怎么做?
- 见笑了,问个问题。
- c#下读取外部程序listview控件,已经取得行数,但读出内容为空值?
- 为什么用Response.ContentType ="application/vnd.ms-excel"显示Excel报错
- 新手!!!在线等!!!跪求
- WPF KeyDown 事件处理出现双 Ctrl 同时按下被无视的问题.
简单组播实例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.IO;
using System.Net.Sockets;
using System.Threading;namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
MultiCastServer server = new MultiCastServer();
MultiCastClient client = new MultiCastClient(); Thread ClientThread = new Thread(new ThreadStart(client.ReceiveData));
ClientThread.Start(); Thread ServerThread = new Thread(new ThreadStart(server.SendData));
ServerThread.Start(); }
}
class MultiCastServer {
private IPAddress multicastIP = IPAddress.Parse("224.110.10.1");
private int port = 5001;
public void SendData()
{
Console.WriteLine("Sender Start");
IPEndPoint multicastIep = new IPEndPoint(multicastIP, port);
UdpClient sendUdpClient = new UdpClient(); sendUdpClient.EnableBroadcast = true; string sendString = "How are you";
byte[] bytes = System.Text.Encoding.UTF8.GetBytes(sendString); try
{
sendUdpClient.Send(bytes, bytes.Length, multicastIep);
}
catch
{
Console.WriteLine("send error");
}
finally
{
sendUdpClient.Close();
Console.WriteLine("Sender Close");
}
}
} class MultiCastClient { private IPAddress multicastIP = IPAddress.Parse("224.110.10.1");
private int port = 5001;
public void ReceiveData()
{
Console.WriteLine("Reciever Start");
UdpClient receiveUdp = new UdpClient(this.port);
try
{
receiveUdp.JoinMulticastGroup(this.multicastIP,10);
}
catch (SocketException e)
{
Console.WriteLine(e.Message.ToString());
} IPEndPoint remoteHost = null; while (true)
{
try
{
byte[] bytes = receiveUdp.Receive(ref remoteHost);
string str = Encoding.UTF8.GetString(bytes, 0, bytes.Length);
Console.WriteLine(str);
}
catch
{
Console.WriteLine("Reciever Close");
break;
}
}
}
}
}