using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Sockets;
using System.Net;
using System.Threading;
namespace RegistryKeyForVCA
{
public class UDPRideo
{
Thread SThread;
public UDPRideo()
{
//runVoke voke = new runVoke(this.startSock);
//voke();
SThread = new Thread(new ThreadStart(startSock));
SThread.Name = "UDP-" + DateTime.UtcNow.Ticks;
//Trace.WriteLine("W3S 开始新的接收进程," + SThread.Name);
SThread.Start();
}
///
/// 开始侦听端口
///
///
bool bRecieve = true;
Socket sock;
private void startSock()
{
try
{
sock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
IPEndPoint iep = new IPEndPoint(IPAddress.Any, 9050);
sock.Bind(iep);
EndPoint ep = (EndPoint)iep;
Console.WriteLine("Ready to receive…");
byte[] data;
int recv;
string stringData;
this.bRecieve = true;
while (this.bRecieve)
{
data = new byte[1024];
recv = sock.ReceiveFrom(data, ref ep);
stringData = Encoding.ASCII.GetString(data, 0, recv);
Console.WriteLine("received: {0} from: {1}", stringData, ep.ToString());
}
sock.Close();
}
catch (Exception e)
{
}
}
public void sendUDP()
{
// Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram,ProtocolType.Udp);
IPEndPoint iep1 = new IPEndPoint(IPAddress.Broadcast, 9050);//255.255.255.255
IPEndPoint iep2 = new IPEndPoint(IPAddress.Parse("192.168.1.255"), 9050);
string hostname = Dns.GetHostName();
byte[] data = Encoding.ASCII.GetBytes(hostname);
sock.SetSocketOption(SocketOptionLevel.Socket,SocketOptionName.Broadcast, 1);
sock.SendTo(data, iep1);
sock.SendTo(data, iep2);
//sock.Close();
}
}
}
浙公网安备 33010602011771号