111,098
社区成员




IPAddress broadcast = IPAddress.Parse(ip);
IPEndPoint ep = new IPEndPoint(broadcast, ipPort);
udpClent.Connect(ep);
byte[] sendData = getSendData(data, dateTime);
sendData[1] = des;
udpClent.Send(sendData, 35);
byte[] temp = new byte[10] { 0x7F, 0x01, 0xE1, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 };
temp[1] = des;
getBCD(dateTime).CopyTo(temp, 5);
udpClent.Send(temp, 10);
private void reciveButton_Click(object sender, EventArgs e)
{
try
{
IPEndPoint ep = new IPEndPoint(IPAddress.Any, int.Parse(textPort.Text));
UdpClient client = new UdpClient(ep);
UdpState state = new UdpState();
state.e = ep;
state.u = client;
client.BeginReceive(new AsyncCallback(fuc), state); //首次触发接收数据方法
reciveButton.Enabled = false;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void fuc(IAsyncResult ar)
{
UdpClient u = (UdpClient)((UdpState)(ar.AsyncState)).u;
IPEndPoint e = (IPEndPoint)((UdpState)(ar.AsyncState)).e;
Byte[] reDatas = u.EndReceive(ar, ref e);
if (reDatas.Length > 0)
{
R = new byte[reDatas.Length];
R = reDatas;
if (recClient == null || recClient.IsAlive == false)
{
recClient = new Thread(showRec);
recClient.Start();//显示到界面
}
}
u.BeginReceive(new AsyncCallback(fuc), ar.AsyncState);
}
delegate void wakeShow();
private void showRec() //委托执行函数
{
if (!textMessage.InvokeRequired)
{
try
{
for (int i = 0; i < R.Length; i++)
{
textMessage.AppendText(R[i].ToString("X2"));
}
textMessage.AppendText("\n");
}
catch { }
textMessage.Refresh();
}
else
{
wakeShow show = new wakeShow(showRec);
Invoke(show);
}
}
R = new byte[reDatas.Length];
R = reDatas;
for (int i = 0; i < R.Length; i++)
{
textMessage.AppendText(R[i].ToString("X2"));
}
textMessage.AppendText("\n");
lock(obj)
{
//
}