3

基于.Net C# 通信开发-网络调试助手 - 衡斅

 2 years ago
source link: https://www.cnblogs.com/henxiao25/p/16221800.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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

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

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

  不当之处,欢迎指正


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK