惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
V2EX
爱范儿
爱范儿
Martin Fowler
Martin Fowler
T
The Blog of Author Tim Ferriss
B
Blog RSS Feed
博客园 - 聂微东
G
GRAHAM CLULEY
Engineering at Meta
Engineering at Meta
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
WordPress大学
WordPress大学
Scott Helme
Scott Helme
AI
AI
S
Security Affairs
T
Threat Research - Cisco Blogs
M
MIT News - Artificial intelligence
T
Troy Hunt's Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
人人都是产品经理
人人都是产品经理
AWS News Blog
AWS News Blog
T
Threatpost
Cyberwarzone
Cyberwarzone
www.infosecurity-magazine.com
www.infosecurity-magazine.com
U
Unit 42
V
Vulnerabilities – Threatpost
J
Java Code Geeks
博客园 - Franky
月光博客
月光博客
Blog — PlanetScale
Blog — PlanetScale
NISL@THU
NISL@THU
D
Docker
小众软件
小众软件
N
News and Events Feed by Topic
Microsoft Security Blog
Microsoft Security Blog
Y
Y Combinator Blog
A
Arctic Wolf
D
DataBreaches.Net
云风的 BLOG
云风的 BLOG
Forbes - Security
Forbes - Security
量子位
PCI Perspectives
PCI Perspectives
美团技术团队
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
I
InfoQ
Security Archives - TechRepublic
Security Archives - TechRepublic
有赞技术团队
有赞技术团队
腾讯CDC
P
Proofpoint News Feed
S
Security @ Cisco Blogs
G
Google Developers Blog
C
Cisco Blogs

博客园 - 衡斅

基于.net C# Socket WinForm MQTT 客户端开发 基于.Net C# 通信开发-串口调试助手 基于HBuilderX+UniApp+ColorUi+UniCloud 优宝库 开发实战(一) .net core 跨平台开发 微服务架构 基于Nginx反向代理 服务集群负载均衡 .Net Core 跨平台开发实战-服务器缓存:本地缓存、分布式缓存、自定义缓存 redis 分布式缓存实战-redis 事务 基于.net EF6 MVC5+WEB Api 的Web系统框架总结(4)-Excel文件读、写操作 基于.net EF6 MVC5+WEB Api 的Web系统框架总结(3)-项目依赖注入 基于.net EF6 MVC5+WEB Api 的Web系统框架总结(2)-业务项目搭建 基于.net EF6 MVC5+WEB Api 的Web系统框架总结(1)-Web前端页面 基于html5 plus + Mui 移动App开发(三)-食全库 基于Html5 Plus + Vue + Mui 移动App开发(三)-文件操作(读取、保存、更新数据) 基于Html5 Plus + Vue + Mui 移动App 开发(二) 基于html5 plus + Mui 移动App开发(一) 基于百度地图的产品销售的单位查看功能设计与实现 实全软件产品自动升级管理解决方案 基于服务(Web Service)的文件管理Winform客户端实现(二) 如何通过WPS 2013 API 将Office(Word、Excel和PPT)文件转PDF文件 如何通过SerialPort读取和写入设备COM端口数据
基于.Net C# 通信开发-网络调试助手
衡斅 · 2022-05-04 · via 博客园 - 衡斅

基于.Net C# 通信开发-网络调试助手
1、概述


  网络调试助手是集TCP/UDP服务端客户端一体的网络调试工具,可以帮助网络应用设计、开发、测试人员检查所开发的网络应用软硬件的数据收发状况,提高开发的速度,是TCP/UDP应用开发助手。

  实全网络调试助手是基于.net C# Socket 开发的网络调试工具,实现TCP Server、TCP Client、UDP的连接通信,字符串和HEX数据收发功能。Socket即网络套接字,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开、读写和关闭等操作。

2、UDP通信
  UDP是一个简单的、面向数据报的无连接协议,提供快速但不一定可靠的传输服务。利用UDP协议可以使用广播的方式同时向子网上所有设备发送数据,也可以使用组播的方式同时向网络上的多少设备发送数据。UDP通信是不分服务端和客户端的,通信双方是对等的。编写基于UDP协议的应用程序,关键在于如何实现数据的发送和接收。
  UDP通信主要功能包括:绑定本地端口、发送数据、接收数据。

2.1、绑定本地端口
  对于接收流入的UDP服务器程序来说,必须将程序与本地系统中指定的UDP端口进行绑定。

//Socket与本地的一个终结点相关联
            IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 9050);
            Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);//定义一个Socket
            socket.Bind(ipep);

2.2、发送数据
  由于UDP协议不需要建立连接,因此可以在任何时间,直接向网络中的任意主机发送UDP数据。通过调用Socket对象的SendTo方法直接将数据发送到远程主机

//接收数据
            EndPoint remote = new IPEndPoint(IPAddress.Any, 0);//定义要发送的计算机的地址
            byte[] bytes = new byte[1024];
            int count = socket.ReceiveFrom(bytes, ref remote);
            Console.WriteLine(Encoding.ASCII.GetString(bytes, 0, count));

2.3、接收数据
  Socket对象的ReceiveFrom方法能够在指定的本地IP地址和端口上接收数据,该方法带一个引用类型的EndPoint实例,并接收到的数据作为Byte数组返回。

//发送数据
            string welcome = "Welcome to my test server!";
            byte[] data = Encoding.ASCII.GetBytes(welcome);
            socket.SendTo(data, data.Length, SocketFlags.None, remote);

3、结语

  至此介绍完毕,本项目开源,源码地址:https://gitee.com/ShiQuanSoft/ShiQuan.SocketHelper

  工具压缩包地址:https://gitee.com/ShiQuanSoft/ShiQuan.SocketHelper/attach_files/1048902/download/ShiQuan.SocketHelper.zip

  不当之处,欢迎指正