当前位置: 首页 > news >正文

C# udp通信测试助手

1、UI界面和最终实现功能测试

2、代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;namespace UdpTest
{public partial class MaiForm : Form{public MaiForm(){InitializeComponent();}bool isContinueSend = false;        //是否连续发送// 创建UdpClient实例Socket udpClient;Thread t;Thread t2;string udpRecv;private void MaiForm_Load(object sender, EventArgs e){udpClient = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);udpClient.Bind(new IPEndPoint(IPAddress.Parse(txtLocalIp.Text), int.Parse(txtLocalPort.Text)));t = new Thread(sendMsg);t.Start();t2 = new Thread(ReciveMsg);t2.Start();timer1.Start();}/// <summary>/// 向特定ip的主机的端口发送数据报/// </summary>void sendMsg(){EndPoint point = new IPEndPoint(IPAddress.Parse(txtSendIp.Text), int.Parse(txtSendPort.Text));while (true){if(isContinueSend){string msg = txtSend.Text;udpClient.SendTo(Encoding.Default.GetBytes(msg), point);Thread.Sleep(1000);}}}/// <summary>/// 接收发送给本机ip对应端口号的数据报/// </summary>void ReciveMsg(){while (true){EndPoint point = new IPEndPoint(IPAddress.Any, 0);//用来保存发送方的ip和端口号byte[] buffer = new byte[1024];int length = udpClient.ReceiveFrom(buffer, ref point);//接收数据报string strRecvTemp = Encoding.UTF8.GetString(buffer, 0, length);if (length > 0){udpRecv += point.ToString() + ": " + strRecvTemp + "\r\n";}}}private void btnSend_Click(object sender, EventArgs e){EndPoint point = new IPEndPoint(IPAddress.Parse(txtSendIp.Text), int.Parse(txtSendPort.Text));string msg = txtSend.Text;udpClient.SendTo(Encoding.UTF8.GetBytes(msg), point);}private void timer1_Tick(object sender, EventArgs e){txtUdpRecv.Text = udpRecv;}private void MaiForm_FormClosing(object sender, FormClosingEventArgs e){System.Environment.Exit(0);         //强制关闭所有线程   Application.Exit();}private void checkContinueSend_CheckedChanged(object sender, EventArgs e){isContinueSend = checkContinueSend.Checked;if(isContinueSend){btnSend.Enabled = false;}else{btnSend.Enabled = true;}}}
}

3、下载连接

https://download.csdn.net/download/panjinliang066333/89616042

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【数据分享】2024最新安徽省镇级行政区划矢量shp
  • 【面试经验】京东java京东young 一面80min
  • 电子元器件—三极管(一篇文章搞懂电路中的三极管)(笔记)(面试考试必备知识点)
  • EMQX服务器安装MQTT测试
  • 通过Netlink检测USB设备的插拔
  • 吴恩达老师机器学习作业-ex7(聚类)
  • 使用 Ansible Blocks 进行错误处理
  • Centos服务器root用户禁止远程登录
  • Html5总结
  • Node.js(8)——Express的基本使用
  • Opencv调用yolov5的onnx文件时报错记录
  • B站宋红康JAVA基础视频教程个人笔记chapter03
  • 22 - grace数据处理 - 补充 - 泄露误差改正 - Slepian局部谱分析法(二) - Slepian谱分析程序包初始化
  • Elasticsearch下篇
  • 《数据结构(C语言版)第二版》第五章-树和二叉树(5.6 树和森林)
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • opencv python Meanshift 和 Camshift
  • vue-loader 源码解析系列之 selector
  • windows下mongoDB的环境配置
  • 浮动相关
  • 构造函数(constructor)与原型链(prototype)关系
  • 解决iview多表头动态更改列元素发生的错误
  • 近期前端发展计划
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • 智能合约开发环境搭建及Hello World合约
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • (06)Hive——正则表达式
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (6)STL算法之转换
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (附源码)springboot教学评价 毕业设计 641310
  • (十八)SpringBoot之发送QQ邮件
  • (十五)使用Nexus创建Maven私服
  • (转)用.Net的File控件上传文件的解决方案
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .Net FrameWork总结
  • .NET Windows:删除文件夹后立即判断,有可能依然存在
  • .NET 通过系统影子账户实现权限维持
  • .NET 线程 Thread 进程 Process、线程池 pool、Invoke、begininvoke、异步回调
  • .net 逐行读取大文本文件_如何使用 Java 灵活读取 Excel 内容 ?
  • .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用?
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试
  • .net遍历html中全部的中文,ASP.NET中遍历页面的所有button控件
  • .NET周刊【7月第4期 2024-07-28】
  • @Slf4j idea标红Cannot resolve symbol ‘log‘
  • [ vulhub漏洞复现篇 ] Django SQL注入漏洞复现 CVE-2021-35042
  • [04] Android逐帧动画(一)
  • [20171101]rman to destination.txt
  • [android] 切换界面的通用处理