111,088
社区成员




public void StartReceive(MsgReceiverEventArgs myMsgReceiverEventArgs)
{
uReceiverSlot.BeginReceive(new AsyncCallback(ReceiveCallback),myMsgReceiverEventArgs);
Thread.Sleep(System.Threading.Timeout.Infinite);
}
/// <summary>
/// UDPClient异步接收到指令后的函数
/// </summary>
/// <param name="iar"></param>
private void ReceiveCallback(IAsyncResult iar)
{
IPEndPoint ipe = ipEp;
Byte[] receiveBytes = uReceiverSlot.EndReceive(iar, ref ipe);
string receiveMessage = Encoding.BigEndianUnicode.GetString(receiveBytes);
if (receiveBytes.Length > 0)
{
MsgReceiverEventArgs myMsgReceiverEventArgs_msg = (MsgReceiverEventArgs)iar.AsyncState;
myMsgReceiverEventArgs_msg.RecvMsg = receiveMessage;
myMsgReceiverEventArgs_msg.Ipendpoint = ipe;
if (OnMsgReceived != null)
{
OnMsgReceived(this, myMsgReceiverEventArgs_msg);
}
}
//重新进行接收
uReceiverSlot.BeginReceive(new AsyncCallback(ReceiveCallback), (MsgReceiverEventArgs)iar.AsyncState);
}