基于Winform的UDP通信
1、文件结构

2、UdpReceiver.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;namespace UDPTest.Udp
{public class UdpStateEventArgs : EventArgs{public IPEndPoint remoteEndPoint;public byte[] buffer = null;}public delegate void UdpReceivedEventHandler(UdpStateEventArgs args);public class UdpReceiver{private UdpClient udpClient;public event UdpReceivedEventHandler UdpReceived;public UdpReceiver(string localIp,int localPort, string remoteIp, int remotePort){IPEndPoint localPoint = new IPEndPoint(IPAddress.Parse(localIp), localPort);udpClient = new UdpClient(localPoint);Task.Run(() =>{while (true){UdpStateEventArgs args = new UdpStateEventArgs();if (udpClient != null){IPEndPoint remotePoint = new IPEndPoint(IPAddress.Parse(remoteIp), remotePort);var received = udpClient.Receive(ref remotePoint);args.remoteEndPoint = remotePoint;args.buffer = received;UdpReceived?.Invoke(args);}else{break;}}});}}
}
3、ControlCross.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace UDPTest.Utils
{internal class ControlCross{public static void LableSetText(Label label, string text){if (label.InvokeRequired){MethodInvoker mi = delegate (){label.Text = text;};label.Invoke(mi);}else{label.Text = text;}}}
}
4、MainForm窗口

5、MainForm.cs
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.Tasks;
using System.Windows.Forms;
using UDPTest.Udp;
using UDPTest.Utils;namespace UDPTest
{public partial class MainForm : Form{public MainForm(){InitializeComponent();}string localIp="127.0.0.1";int localPort = 7777;string remoteIp = "127.0.0.1";int remotePort = 8081;string remotePointInfo = "";string receiveBuffer = "";private void btStartTest_Click(object sender, EventArgs e){UdpReceiver udpReceiver=new UdpReceiver(localIp, localPort, remoteIp, remotePort);udpReceiver.UdpReceived += UdpReceiverProcess;}private void UdpReceiverProcess(UdpStateEventArgs args){var remotePoint = args.remoteEndPoint;remotePointInfo = $"{remotePoint.Address}:{remotePoint.Port}";receiveBuffer = Encoding.UTF8.GetString(args.buffer);ControlCross.LableSetText(lbTest1, remotePointInfo);ControlCross.LableSetText(lbTest2, receiveBuffer);}private UdpClient udpClient = null;private void btSendSet_Click(object sender, EventArgs e){IPEndPoint localPoint = new IPEndPoint(IPAddress.Parse(localIp), localPort);udpClient = new UdpClient(localPoint);}private void btSendTest_Click(object sender, EventArgs e){string str=this.tbSendData.Text;byte[] buffer=Encoding.UTF8.GetBytes(str);if(udpClient != null){IPEndPoint remotePoint = new IPEndPoint(IPAddress.Parse(remoteIp), remotePort);udpClient.Send(buffer,buffer.Length,remotePoint);}}}
}
6、运行代码

相关文章:
基于Winform的UDP通信
1、文件结构 2、UdpReceiver.cs using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading.Tasks;namespace UDPTest.Udp {public class UdpStateEventArgs : EventArgs…...
掌握 BERT:自然语言处理 (NLP) 从初级到高级的综合指南(1)
简介 BERT(来自 Transformers 的双向编码器表示)是 Google 开发的革命性自然语言处理 (NLP) 模型。它改变了语言理解任务的格局,使机器能够理解语言的上下文和细微差别。在本文[1]中,我们将带您踏上从 BERT 基础知识到高级概念的旅…...
Linux Ftrace介绍
文章目录 一、简介二、内核函数调用跟踪参考链接: 一、简介 Ftrace 是 Linux 官方提供的跟踪工具,在 Linux 2.6.27 版本中引入。Ftrace 可在不引入任何前端工具的情况下使用,让其可以适合在任何系统环境中使用。 Ftrace 可用来快速排查以下相…...
Go语言进阶------>init()函数
Init()包初始化 执行优先级 Init()函数的执行优先级比main()函数的执行优先级要高,也就是说程序会优先执行Init()函数之后再执行main()函数. 代码如下 package mainimport "fmt"func init() {fmt.Println("执行了Init()函数") }func main() {fmt.Println…...
云计算:常用微服务框架
目录 一、理论 1.Java微服务框架 2.Go微服务框架 3.Python微服务框架 4.Node.js微服务框架 5..Net微服务框架 一、理论 1.Java微服务框架 Spring Cloud:最早最成熟,Java开源微服务框架方案 SpringBoot:全新框架,设计目的是…...
jmeter添加断言(详细图解)
先创建一个线程组,再创建一个http请求。 为了方便观察,我们添加两个监听器,察看结果树和断言结果。 添加断言:响应断言,响应断言也是比较常用的一个断言 设置响应断言:正常情况下响应代码是200。选择响应代…...
few shot object detection via feature reweight笔记
摘要部分 few shot很多用的都是faster R-CNN为基础,本文用的是one-stage 结构。 用了一个meta feature learner和reweighting模块。 和其他的few shot一样,先学习base数据集,再推广到novel数据集。 feature learner会从base数据集中提取meta…...
工会排队模式:电商新营销模式吸引消费者,提升销售!
随着电商行业的繁荣发展,私域流量已经成为了电商平台争夺消费者和促进销售的重要手段。工会排队模式正是在这种背景下应运而生的一种创新性的电商营销模式。这种模式通过奖金池的资金来为消费者和商家提供返现和排队奖励,构建了一个实现消费者和商家共赢…...
定档通知2024中国(北京)国际红外技术及设备展览会
时间:2024年7月14-16日 地点:北京国家会议中心 ◆展会背景background: 各有关红外企业厂商:2024年7月14~16日,2024中国国际红外技术及设…...
自助建站系统,一建建站系统api版,自动建站
安装推荐php7.2或7.2以下都行 可使用虚拟主机或者服务器进行搭建。 分站进入网站后台 域名/admin 初始账号123456qq.com密码123456 找到后台的网站设置 将主站域名及你在主站的通信secretId和通信secretKey填进去。 即可正常使用 通信secretId和通信secretKey在主站的【账号…...
算法框架-LLM-1-Prompt设计(一)
原文:算法框架-LLM-1-Prompt设计(一) - 知乎 目录 收起 1 prompt-engineering-for-developers 1.1 Prompt Engineering 1.1.1 提示原则 1. openai的环境 2. 两个基本原则 3. 示例 eg.1 eg.2 结构化输出 eg.3 模型检验 eg.4 提供示…...
一个rar压缩包如何分成三个?
一个rar压缩包体积太大了,想要将压缩包分为三个,该如何做到?其实很简单,方法就在我们经常使用的WinRAR当中。 我们先将压缩包内的文件解压出来,然后查看一下,然后打开WinRAR软件,找到文件&…...
批量获取拼多多商品详情数据,拼多多商品详情API接口
批量获取拼多多商品详情数据可以采用以下方式: 使用拼多多开放平台API接口。 拼多多开放平台提供了API接口,可以通过API接口获取拼多多平台上的商品信息,使用API接口需要进行权限申请和认证,操作较为复杂。 使用第三方工具。 市面…...
Redis Cluster Gossip Protocol: 目录
术语说明 server:当前的节点 cluster:每个节点的内存中都有一个集群信息结构,里面包含了集群中各个节点的状态信息(包括server自己) myself:当前节点在cluster中的实体 node:cluster节点字典中…...
HarmonyOS/OpenHarmony原生应用-ArkTS万能卡片组件Span
作为Text组件的子组件,用于显示行内文本的组件。无子组件 一、接口 Span(value: string | Resource) 从API version 9开始,该接口支持在ArkTS卡片中使用。 参数: 参数名 参数类型 必填 参数描述 value string | Resource 是 文本内…...
这些负载均衡都解决哪些问题?服务、网关、NGINX
这篇文章解答一下群友的一系列提问: 在微服务项目中,有服务的负载均衡、网关的负载均衡、Nginx的负载均衡,这几个负载均衡分别用来解决什么问题呢? 在微服务项目中,服务的负载均衡、网关的负载均衡和Nginx的负载均衡都…...
Lambda表达式在C++中的定义
目录 背景介绍: Lambda表达式的定义: Lambda结构介绍: 1. Lambda capture 2. Lambda parameter list 3. Lambda mutable 4. Lambda return type 5. Lambda 主体 Lambda 表达式小结: Lambda 引用参考: 背景介…...
sheng的学习笔记-【中文】【吴恩达课后测验】Course 1 - 神经网络和深度学习 - 第二周测验
课程1_第2周_测验题 目录:目录 第一题 1.神经元计算什么? A. 【 】神经元计算激活函数后,再计算线性函数(zWxb) B. 【 】神经元计算一个线性函数(zWxb),然后接一个激活函数…...
前端代码格式化规范总结
在日常开发过程中,经常会碰到代码格式化不一致的问题,还要就是 js 代码语法错误等没有及时发行改正,下面就介绍一下如何使用eslint、prettier、husky、lint-staged、commitizen来规范代码格式和提高代码质量的方法。 目录 准备工作代码检测代…...
Windows10打开应用总是会弹出提示窗口的解决方法
用户们在Windows10电脑中打开应用程序,遇到了总是会弹出提示窗口的烦人问题。这样的情况会干扰到用户的正常操作,给用户带来不好的操作体验,接下来小编给大家详细介绍关闭这个提示窗口的方法,让大家可以在Windows10电脑中舒心操作…...
Polars 2.0清洗稳定性生死线:当lazy.eval()遭遇OOM崩溃,这3个编译期优化参数必须重置!
第一章:Polars 2.0清洗稳定性生死线:当lazy.eval()遭遇OOM崩溃,这3个编译期优化参数必须重置!在 Polars 2.0 中,lazy.eval() 的执行模型已深度耦合 Rust 编译期查询优化器(QO),但默认…...
前端CSS样式详细笔记
文章目录一、CSS基础概念1. 什么是CSS2. CSS三大核心特性3. CSS基本语法结构二、CSS引入方式三、CSS选择器详解1. 基础选择器2. 组合选择器3. 属性选择器4. 伪类与伪元素四、选择器优先级规则1. 优先级计算方法2. 优先级实战示例3. 优先级注意事项五、CSS盒模型1. 盒模型组成2.…...
重生之我用 AI 复活了我的同事
阅读本文大概需要 2.8 分钟。在写这篇文章之前先解答上篇文章评论区反映的两个问题:第一个问题,有人读完文章说,张哥,那以后是用 AI 还是不用呢?当然要用了,而且是鼓励大家全面使用。我文章本意是 AI 发展之…...
别再死记硬背了!用一张图+代码示例,彻底搞懂蓝牙BLE配对的6种SMP流程
蓝牙BLE安全配对实战图解:6种SMP流程与核心算法拆解 每次看到蓝牙协议栈里那些晦涩的安全管理协议(SMP)文档就头疼?别担心,今天我们用工程师的思维来重新解构这个"安全黑匣子"。扔掉那些让人昏昏欲睡的文字…...
【Mojo+Python企业级混合编程实战指南】:20年架构师亲授3大高频场景落地方法论
第一章:Mojo与Python混合编程的企业级价值全景图Mojo 是一种专为 AI 原生系统设计的现代系统编程语言,兼具 Python 的表达力与 C/Rust 级别的性能。在企业级 AI 工程实践中,Mojo 并非旨在替代 Python,而是以“无缝互操作”为核心理…...
OpenClaw安全指南:gemma-3-12b-it本地化部署的权限管控策略
OpenClaw安全指南:gemma-3-12b-it本地化部署的权限管控策略 1. 为什么需要特别关注OpenClaw的权限管控? 上周我在调试一个自动化文档整理任务时,差点酿成大祸——OpenClaw误将我的工作目录/Documents/ProjectX识别为临时文件夹,…...
OpenSpeedy高效构建与分发指南:从源码到部署的全流程实践
OpenSpeedy高效构建与分发指南:从源码到部署的全流程实践 【免费下载链接】OpenSpeedy 🎮 An open-source game speed modifier. 项目地址: https://gitcode.com/gh_mirrors/op/OpenSpeedy OpenSpeedy作为一款专注于提升GitHub资源访问速度的开源…...
千问3.5-2B参数详解教程:max_new_tokens=192与temperature=0.7如何影响图文理解质量
千问3.5-2B参数详解教程:max_new_tokens192与temperature0.7如何影响图文理解质量 1. 认识千问3.5-2B视觉语言模型 千问3.5-2B是Qwen系列中的小型视觉语言模型,它能够同时理解图片内容和生成文本回答。这个模型特别适合需要结合视觉和语言理解的任务场…...
选AI面试软件,为何一定要看中防作弊、可解释、全场景?
想象一下:你花了半个月筛选简历,终于确定了100个面试候选人,却发现一半人在用AI生成器写答案、用提词器念稿,甚至找人替考;好不容易拿到AI评分,却看不懂分数怎么来的,候选人质疑时你根本没法解释…...
PyTorch模型调试神器:用TensorBoard+torchsummary快速定位网络结构问题
PyTorch模型调试神器:用TensorBoardtorchsummary快速定位网络结构问题 当你在PyTorch中构建复杂的神经网络时,是否经常遇到以下困扰:模型训练时突然报出维度不匹配的错误,却不知道具体是哪一层出了问题?或者模型参数数…...
