线程带参数的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, "系统提示!");
}
}
线程带参数的Udp接收的更多相关文章
- c#线程带参数
c#线程带参数 ThreadStart threadStart = delegate { LoadPicture(ds.Tables[0]); }; Thread thread = new Threa ...
- ASP.NET Boilerplate 学习 AspNet Core2 浏览器缓存使用 c#基础,单线程,跨线程访问和线程带参数 wpf 禁用启用webbroswer右键菜单 EF Core 2.0使用MsSql/MySql实现DB First和Code First ASP.NET Core部署到Windows IIS QRCode.js:使用 JavaScript 生成
ASP.NET Boilerplate 学习 1.在http://www.aspnetboilerplate.com/Templates 网站下载ABP模版 2.解压后打开解决方案,解决方案目录: ...
- c#基础,单线程,跨线程访问和线程带参数
using System; using System.Collections.Generic; using System.Threading; using System.Windows.Forms; ...
- c#创建带参数的线程
1.无参数线程的创建 Thread thread = new Thread(new ThreadStart(getpic)); thread.Start(); private void showmes ...
- C#线程调用带参数的方法
在 .NET Framework 2.0 版中,要实现线程调用带参数的方法有两种办法.第一种:使用ParameterizedThreadStart.调用 System.Threading.Thread ...
- Java带参数的线程类ParameterizedThread——即如何给Thread传递参数
在Java中似乎没有提供带运行参数的线程实现类,在第三方类库中也没有找到.网上有大量的文章在讨论这个问题,但都没有提供很好的代码封装解决方案,这令我很吃惊.如果读者知道有官方或者第三方的实现方式,欢迎 ...
- MFC带参数启动指令发送与接收
MFC带参数启动指令发送与接收 发送 使用ShellExecute函数打开文件或执行程序. 函数原型: HINSTANCE ShellExecute( _In_opt_ HWND hwnd,//父窗口 ...
- 动态线程池(DynamicTp)之动态调整Tomcat、Jetty、Undertow线程池参数篇
大家好,这篇文章我们来介绍下动态线程池框架(DynamicTp)的adapter模块,上篇文章也大概介绍过了,该模块主要是用来适配一些第三方组件的线程池管理,让第三方组件内置的线程池也能享受到动态参数 ...
- C#微信公众号接口开发,灵活利用网页授权、带参数二维码、模板消息,提升用户体验之完成用户绑定个人微信及验证码获取
一.前言 当下微信公众号几乎已经是每个公司必备的,但是大部分微信公众账号用户体验都欠佳,特别是涉及到用户绑定等,需要用户进行复杂的操作才可以和网站绑定,或者很多公司直接不绑定,而是每次都让用户填写账号 ...
随机推荐
- cmusphinx格式问题
在windows下.lm和.dict同时为ANSI编码,输出正确,否则输出乱码或不输出结果.
- Arch安装fcitx输入法
安装fcitx,安装gtk.qt模块. [root@ARCH ~]# pacman -S fcitx-im :: There are 4 members in group fcitx-im: :: R ...
- webdriver入门
webdriver是web自动化测试中的重要工具,通过webdriver可以灵活的操纵browser完成相关的测试,目前的webdriver对主流的浏览器均有支持, 如firefox ,chrome, ...
- 字符串匹配之boyer-Moore算法
Boyer-Moore算法不仅效率高,而且构思巧妙,容易理解.1977年,德克萨斯大学的Robert S. Boyer教授和J Strother Moore教授发明了这种算法. 下面,我根据Moore ...
- ShellExecute, WinExec, CreateProcess区别
ShellExecute ShellExecute的功能是运行一个外部程序(或者是打开一个已注册的文件.打开一个目录.打印一个文件等等),并对外部程序有一定的控制. 有几个API函数都可以实现这些功能 ...
- Centos sudo添加用户
$ su - # vi /etc/sudoers 在root ALL=(ALL) ALL下 添加 username ALL=(ALL) ALL 输入wq!强制保存.
- uCGUI的文字与数值显示方法
uCGUI的数值显示非常的灵活方便,是制作LCD界面非常好的选择. 文字与数值显示的方法: 常用文本显示函数: void GUI_DispStringAt(const char GUI_FAR *s, ...
- px和sp什么区别
都表示像素,只不过sp通常表示文字大小: <TextView android:layout_width="wrap_content" android:layout_heigh ...
- Ajax交互,浏览器接收不到服务器的Json数据(跨域问题)
该问题的情景如下: 问题描述 Ajax的请求代码放在一台机器上,而服务器的java 路由程序放在另一个机子上,所以Ajax的url填写的是带"http://" 的地址,而不是相对 ...
- zend笔记
ZEND_STRL(str) 等价于 (str), (sizeof(str)-1) ZEND_STRS(str)等价于 (str), (sizeof(str))