线程带参数的Udp接收

//work wk = new work(ReadUdpDate);
ParameterizedThreadStart parmThre = new ParameterizedThreadStart(ReadUdpDate);
Thread read = new Thread(parmThre);
read.Start(ipAddress);  

 

 

private void ReadUdpDate(object IP)
{
string message = "";
try
{


while (true)
{
//if (remoteIpep==null)
//{
// remoteIpep = new IPEndPoint(IPAddress.Parse("192.168.6.32"), 26); // 接受的IP地址和端口号
//}
if (ReadUdpClient==null)
{
return;
}
int buff = ReadUdpClient.Client.Available;
if (buff > 0)
{

byte[] bytRecv = ReadUdpClient.Receive(ref remoteIpep);
if (bytRecv.Length > 0)
{
message = Encoding.UTF8.GetString(bytRecv, 0, bytRecv.Length);
if (bytRecv.Length==35)
{
string sch = message.Substring(0, 20);
sch = sch.Substring(0, 10);
int countNum = int.Parse(message.Substring(20, 2));
string jiIP = remoteIpep.Address.ToString();

if (qzz.select_diepian(sch, jiIP))
{
qzz.update_diepian(sch, countNum, jiIP);
}
else
{
qzz.insert_diepian(sch, countNum, jiIP);
}
}
else
{
//如果接收到的信息时OK 关闭开关
if (message.ToUpper() == "OK")///&& IP == remoteIpep.Address.ToString())
{

}
else if (message.ToUpper() == "NG")/// && IP == remoteIpep.Address.ToString())
{
if (sendbytes!=null)
{
sendUdpClient.Send(sendbytes, sendbytes.Length, remoteIpep);
}
else
{
//MessageBox.Show("还未发送给PLC数据!");
}

}
}


}

}

}

}
catch (Exception ex)
{
MessageBox.Show( ex.Message, "系统提示!");
}
}

posted on 2016-02-16 16:30 影子博客 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/VictorBlog/p/5193123.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值