using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.Threading;
namespace Train.Sock
{
/// <summary>
/// SOCK CLASS
/// </summary>
class BE_D10Sock
{
private UdpClient m_Client; //Client
private IPEndPoint m_Remotehost; //create RemoteHost
private int m_Port = 3006;
private Thread startServer;
private string ipadd = "192.168.1.139";
private Boolean SockStartFlag = false;
public delegate void ReciverEventHandler(object sender, ReciverEventArgs e);
public event ReciverEventHandler Reciver;
public BE_D10Sock(string p_IP ,int p_Port)
{
ipadd = p_IP;
m_Port = p_Port;
}
public BE_D10Sock()
{
ipadd = "192.168.1.139";
m_Port = 3006;
}
/// <summary>
/// Set or Get RemoteIP
/// </summary>
public string RemoteIP
{
get{return ipadd;}
set{ipadd=value ;}
}
public int Port
{
get { return m_Port; }
set { m_Port = value; }
}
/// <summary>
/// Start Udp Server
/// </summary>
public void startUDP()
{
if (SockStartFlag==false)
{
m_Client = new UdpClient(m_Port);
m_Remotehost = new IPEndPoint(IPAddress.Parse(ipadd), 0);
startServer=new Thread(new ThreadStart(start_server));
startServer.Start();
SockStartFlag = true;
}
}
/// <summary>
/// Reveiver Data
/// </summary>
private void start_server()
{
while (true)
{
Byte[] recData = m_Client.Receive(ref m_Remotehost);
string Message = System.Text.Encoding.BigEndianUnicode.GetString(recData);
if (Message.Length != 0 )
{
Reciver(this, new ReciverEventArgs(Message));
}
}
}
}
public class ReciverEventArgs : EventArgs
{
public string ReciverMessage{get;set;}
public ReciverEventArgs(string p_Message)
{
this.ReciverMessage = p_Message;
}
}
}