码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 基于.Net C# 通信开发-网络调试助手


    基于.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

      不当之处,欢迎指正

     

  • 相关阅读:
    IAR全面支持小华全系芯片,强化工控及汽车MCU生态圈
    程序员成长:微创新是怎么发生的
    maven配置远程私有仓库拉取库件
    Perforce 使用建议
    基于java+SpringBoot+HTML+Mysql社区管理系统(小区管理系统)
    Python从入门到实践:字节串与字符串
    linux中crontab讲解
    我用这9个小技巧封装Vue组件,老大夸我’封得好‘
    机器学习开源工具BatteryML,一站式分析与预测电池性能
    taobao.trade.get( 获取单笔交易的部分信息(性能高),淘宝R2接口,淘宝开发平台oAuth2.0接口
  • 原文地址:https://www.cnblogs.com/henxiao25/p/16221800.html
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号