C#实现组播源及客户端
2014-08-11 22:46
253 查看
组播源:
客户端:
using System.Net.Sockets;
using System.Net;
using System;
namespace multiCastRecv
{
class recv
{
recv(string mcastGroup, string port)
{
Socket s=new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
IPEndPoint ipep=new IPEndPoint(IPAddress.Any,int.Parse(port));
s.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
s.Bind(ipep);
IPAddress ip=IPAddress.Parse(mcastGroup);
s.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, new MulticastOption(ip,IPAddress.Any));
while(true)
{
byte[] b=new byte[10];
<span style="white-space:pre"> </span>Console.WriteLine("Waiting for data..");
s.Receive(b);
string str = System.Text.Encoding.ASCII.GetString(b,0,b.Length);
Console.WriteLine("RX: " + str.Trim());
}
<span style="white-space:pre"> </span>s.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.DropMembership, new MulticastOption(ip,IPAddress.Any));
<span style="white-space:pre"> </span>s.Close();
}
public static void Main(string[] args)
{
new recv("224.5.6.7","5000");
}
}
}
using System; using System.Net; using System.Net.Sockets; namespace multiCastSend { class send { send(string mcastGroup, string port, string ttl, string rep) { IPAddress ip; try { Console.WriteLine("MCAST Send on Group: {0} Port: {1} TTL: {2}",mcastGroup,port,ttl); ip=IPAddress.Parse(mcastGroup); Socket s=new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); s.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, new MulticastOption(ip)); s.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.MulticastTimeToLive, int.Parse(ttl)); byte[] b=new byte[10]; for(int x=0;x<b.Length;x++) b[x]=(byte)(x+65); IPEndPoint ipep=new IPEndPoint(IPAddress.Parse(mcastGroup),int.Parse(port)); Console.WriteLine("Connecting..."); s.Connect(ipep); for(int x=0;x<int.Parse(rep);x++) { Console.WriteLine("Sending ABCDEFGHIJ..."); s.Send(b,b.Length,SocketFlags.None); } Console.WriteLine("Closing Connection..."); s.Close(); } catch(System.Exception e) { Console.Error.WriteLine(e.Message); } } static void Main(string[] args) { new send("224.5.6.7", "5000", "1", "2"); } } }
客户端:
using System.Net.Sockets;
using System.Net;
using System;
namespace multiCastRecv
{
class recv
{
recv(string mcastGroup, string port)
{
Socket s=new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
IPEndPoint ipep=new IPEndPoint(IPAddress.Any,int.Parse(port));
s.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
s.Bind(ipep);
IPAddress ip=IPAddress.Parse(mcastGroup);
s.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, new MulticastOption(ip,IPAddress.Any));
while(true)
{
byte[] b=new byte[10];
<span style="white-space:pre"> </span>Console.WriteLine("Waiting for data..");
s.Receive(b);
string str = System.Text.Encoding.ASCII.GetString(b,0,b.Length);
Console.WriteLine("RX: " + str.Trim());
}
<span style="white-space:pre"> </span>s.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.DropMembership, new MulticastOption(ip,IPAddress.Any));
<span style="white-space:pre"> </span>s.Close();
}
public static void Main(string[] args)
{
new recv("224.5.6.7","5000");
}
}
}
相关文章推荐
- .Net/C#: 实现支持断点续传多线程下载的 Http Web 客户端工具类 (C# DIY HttpWebClient)
- .Net/C# 实现 中国移动 CMPP v3.0 ISMG SP 收发短信的 SP 客户端 (CMPP SP Client)
- 客户端回调实现 (C#) 示例
- 使用C#的WebService实现客户端软件的在线升级功能
- 如何在无刷新页面的情况下实现客户端回调实例(C#)—MSDN学习笔记
- C#实现大文件分块发送到客户端
- /* .Net/C#: 实现支持断点续传多线程下载的 Http Web 客户端工具类【转】
- .Net/C#: 实现支持断点续传多线程下载的 Http Web 客户端工具类 (第2版) (C# DIY HttpWebClient)
- .net2.0客户端回调实现 (C#) 示例
- .Net/C# 实现 中国移动 CMPP v3.0 ISMG SP 收发短信的 SP 客户端 (第2版) (CMPP SP Client)
- .Net/C#: 实现支持断点续传多线程下载的 Http Web 客户端工具类 (C# DIY HttpWebClient)
- CMPP协议的客户端c#实现代码
- .Net/C#: 实现支持断点续传多线程下载的 Http Web 客户端工具类 (第2版) (C# DIY HttpWebClient)
- Net/C# 实现 中国移动 CMPP v3.0 ISMG SP 收发短信的 SP 客户端 (第2版) (CMPP SP Client)
- .Net/C#: 实现支持断点续传多线程下载的 Http Web 客户端工具类 (第2版) (C# DIY HttpWebClient) 收藏
- .Net/C# 实现 中国移动 CMPP v3.0 ISMG SP 收发短信的 SP 客户端 (第2版)(CMPP SP Client)
- /* .Net/C#: 实现支持断点续传多线程下载的 Http Web 客户端工具类【转】
- .Net/C#: 实现支持断点续传多线程下载的 Http Web 客户端工具类 (C# DIY HttpWebClient)
- 如何在无刷新页面的情况下实现客户端回调实例(C#)—MSDN学习笔记
- .Net/C#: 实现支持断点续传多线程下载的 Http Web 客户端工具类 (第2版) (C# DIY HttpWebClient)