C#以太网简介

7 篇文章 0 订阅
订阅专栏

 

 1创建对象    Socket 

//创建通信对象
        private Socket tcpClient;

1以太网的作用是传输字节。跟串口是一样的,只是传输的物理介质不一样。

2以太网是有协议的,跟串口是不同的。串口只在2点之间传输,以太网是一对多或一对一。

3性能上比串口强很多。有万兆以太网

4串口好比一个房间只有2个物理对象,以太网是有32bit的物理对象。

5前面说的32bit,就是以太网最大能容纳的物理地址。称之为 ip 地址。

6这32bit看似很大,但实际根本就不够用,他相当于人的手机号。

7因为不够用的情况下,增加了网段的概念,就跟手机的区号一样。虽然总长还是32bit,但前面的区号bit变大了,留给后面的ip地址就变小了。(总长是32bit,用刀砍一下,前面的是网段,后面的是电脑ip)用刀砍的过程叫子网掩码。看到最多的是    255,255,255,0   这个0表示8个bit,就是说前面24bit表示网段,后面8bit才表示电脑ip(相当于 24bit手机区号, 8bit才是手机号码)这样的好处是类似拖线板。电源插头有24bit,插座有8bit。这样就可以拖线板去插拖线板了。最终就和树根一样。全0地址系统保留,全1地址是广播地址,所以8bit是256减去2地址是254个可用地址。

8 前面说的32bit和255是什么关系?其实是 0x FF  FF  FF  FF 这样的,你把 0xFF换成十进制就是255了,每8个bit转换成十进制

9这样就好理解网段了。把后面的bit位,抹零后。前面的就是网段了。可以发现掩码网段的bit位全是1(255.255.255.0)

10 有了网段bit长度,就能知道这网段有多大。从 0x000000到0xFFFFFF 都是网段,只要网段的值是一样的,就认为是同一个局域网。

11这个以太网怎么用,怎么收发数据?实际已经做成对象了,就好比汽车,固定的操作那几个,就能用了,不需要再去关心其他的。在电脑上想操作以太网,就需要用 Socket  这个类型。

2 对象连接

       /// <summary>
        /// 建立连接
        /// </summary>
        /// <param name="ip">IP地址</param>
        /// <param name="port">端口号</param>
        public void Connect(string ip, string port)
        {
            //实例化Socket
            tcpClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

            //设置Socket属性
            tcpClient.SendTimeout = this.SendTimeOut;

            tcpClient.ReceiveTimeout = this.ReceiveTimeOut;

            //封装一个EndPoint对象
            IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse(ip), int.Parse(port));

            //建立连接
            tcpClient.Connect(endPoint);
        }

这里用到了 ip地址和端口。

前面已经讲了ip地址的组成(网段+ip地址)是32bit

这个端口又是什么鬼? 

这个端口是 16bit的,他是比如(192.168.0.77)这个电脑,软件用来通讯的窗口。前面讲了以太网能一对多。(比如230个人来访问你这台电脑,你就要安排230个端口(房间)来招待这些人)

3连接成功后,就可以收发数据了

        #region 读取并接受

        /// <summary>
        /// 发送并接受
        /// </summary>
        /// <param name="SendByte"></param>
        /// <returns></returns>
        private byte[] SendAndReceive(byte[] SendByte)
        {
            InteractiveLock.Enter();
            try
            {
                tcpClient.Send(SendByte);
                return ReadMessage();
            }
            catch (Exception)
            {
                return null;
            }
            finally
            {
                InteractiveLock.Leave();
            }
        }

        /// <summary>
        /// 读取缓冲区值
        /// </summary>
        /// <returns></returns>
        private byte[] ReadMessage()
        {
            int count = tcpClient.Available;
            int cycletimer = 0;
            while (count == 0)
            {
                count = tcpClient.Available;
                cycletimer++;
                Thread.Sleep(20);
                if (cycletimer > MaxCycleTimer)
                {
                    break;
                }
            }
            if (count == 0)
            {
                return null;
            }
            else
            {
                byte[] buffer = new byte[count];
                tcpClient.Receive(buffer, count, SocketFlags.None);
                return buffer;
            }
        }
        #endregion

4收发数据结束后,记得要关闭这个连接(不能占着茅坑不拉shi )

  /// <summary>
        /// 断开连接
        /// </summary>
        public void DisConnect()
        {
            if (tcpClient != null)
            {
                tcpClient.Close();
            }
        }

到这里,以太网的基本操作就结束了。

剩下的是一些不重要的知识点。

端口是16bit的,一般小于2000的端口用于网页,网页服务的80端口,用于mysql服务的3306端口个人使用的话建议端口大于49152。最大值是65535。

还有一个DNS的类型。这个也算以太网的一部分,他用于扫描当前网段下所有的电脑ip地址(就相当于,当前手机区号下,有多少个手机号码是在 占线状态),在占线的ip下,可以查到电脑的名字。用电脑的名字或者ip都可以连接到对方。端口正确后就可以收发数据了。

127.0.0.1 是短路地址,网卡直接屏蔽,把发的数据直接给自己。一般用于数据调试

192.168.1.0/24      这个 /24表示网段长度,主机bit全1表示广播ip地址。全0是系统保留用。这样C网段的电脑ip地址只有254个可用。

A类0:0.0.0.0到127.255.255.255         255.0.0.0        前  8  bit    大型网络(留给电脑的有24bit)

B类10:128.0.0.0到191.255.255.255           255.255.0.0       前16 bit      中型网络

C类110:192.0.0.0到223.255.255.255         255.255.255.0   前 24 bit     小型网络

D类1110:224.0.0.0到239.255.255.255                                  前 4 bit     广播地址

E类11110:240.0.0.0到255.255.255.255                                前 5 bit     保留地址

//
端口范围:1~65535 //16bit
ip协议:地址为32位bit;

每8位分一组,可以分4组;
0x00.00.00.00
0xFF.FF.FF.FF
每组用十进制表示:
    0.    0.    0.    0
255.255.255.255

网段的bit位(手机区号)按数值大小分5大类:A,B,C,D,E
A类:0+7bit(网络地址)+24bit(电脑地址) //一共32bit
B类:10+14bit(网络地址)+16bit(主机地址) //一共32bit
C类:110+21bit(网络地址)+8bit(主机地址) //一共32bit
D类:1110+28bit(主机地址) //一共32bit  (组播用)
E 类:11110+27bit(主机地址) //一共32bit  (科研用)
/
A类:0.0.0.0    ~127.255.255.255//多台电脑的环境
B类:128.0.0.0~191.255.255.255//比较居中
C类:192.0.0.0~223.255.255.255//最多254台电脑的环境(去掉全0和全1)255是广播
D类:224.0.0.0~239.255.255.255//组播
E 类:240.0.0.0~247.255.255.255

主机地址全0全1有特殊用途,全1是广播。
A类网络0.0.0.0表示本层网络所有电脑。

802.11b是指11M的速率标准;

802.11g是指54M的速率标准;

802.11n是指150M的速率标准。他们向下兼容

比如 80M /  8bit   是 每秒下载   10Mb/s

EtherCAT运动控制卡的硬件接线与C#的单轴运动控制
AGONIiii的博客
03-27 4560
      今天,正运动技术为大家分享一下《EtherCAT运动控制卡的硬件接线与C#的单轴运动控制》。在正式学习之前,我们先了解一下正运动技术的运动控制卡ECI2618和ECI2828。这两款产品分别是6轴,8轴运动控制卡。         ECI2618支持6轴脉冲输入与编码器反馈,板载24点输入,16点输出,2AD,2DA,支持手轮接口,其中特定输出口支持高速PWM控制。       ECI2828支持8轴总线型输入与编码器反馈,板载24点输入,16点输出,2路AD,2路DA,支持手
C#中服务器端以太网通讯(一对一)
una_ting的博客
08-09 6164
作为服务器端,只需要知道自己需要监听的IP和端口号,就可以监听到前来通讯的服务器端。 可以使用一个结构体来封装TCP通讯所需要的参数。         static public Socket NewServer = null; static public Socket NewClient = null; public struct TcpSetPara         {         ...
EtherCAT.NET 开源项目教程
最新发布
gitblog_00993的博客
08-23 528
EtherCAT.NET 开源项目教程 项目地址:https://gitcode.com/gh_mirrors/et/EtherCAT.NET 项目介绍 EtherCAT.NET 是一个基于 .NET 平台实现的开源 EtherCAT 主站协议栈。EtherCAT 是一种高速实时工业以太网技术,广泛应用于自动化控制领域。此项目由 Apollo3zehn 维护,旨在提供给 .NET 开发者一个高效...
以太网通信
09-08
c#以太网通信,以太网通信。
利用C#与三菱Q系列以太网通信
12-18
C#与三菱Q系列以太网通信,通过三菱公司的MX Conponent的控件实现与Q系列的以太网通信。程序比较简单,只供参考。
Socket 类
weixin_30294709的博客
08-11 172
构造函数 名称说明 Socket(AddressFamily, SocketType, ProtocolType) 新实例初始化Socket类使用指定的地址族、 套接字类型和协议。 Socket(SocketInformation) 新实例初始化Socket类使用返回值的指定的值Duplicate...
C#以太网Sockets服务器设计
cfqq1989的博客
12-05 629
注意:对象不包含0个参数。
FX3U以太网通信.zip_C# FX3U_C#和FX3U以太网通信_c# 以太网_fx3u_三菱
07-13
在本文中,我们将深入探讨如何使用C#编程语言与三菱FX3U PLC(可编程逻辑控制器)通过以太网进行通信。首先,我们要理解FX3U系列是三菱电机推出的一款小型PLC,它支持多种通信协议,其中包括以太网通信。以太网通信...
C# 以太网抓包
04-25
本文将深入探讨如何使用C#语言进行以太网抓包,特别是通过一个名为sharppcap的库来实现这一功能。 sharppcap是一个开源的C#库,它为.NET开发者提供了接口,可以方便地访问WinPcap或Npcap底层驱动,这两个驱动是...
C# 串口和以太网通讯超级调试助手 源代码
11-08
C# 串口和以太网通讯超级调试助手 源代码,很实用,是不错的学习资料。
TcpClient C#.rar_C#以太网教程_PLC_PLC 以太网 C#_PLC 以太网通讯_c# 以太网通讯
07-14
C#与欧姆龙PLC以太网通讯,简单易懂。
上位机(C#以太网连接三菱PLC
12-07
上位机跟三菱PLC通信进行数据读写,只是一些简单操作文档,对于刚开始接触三菱PLC的萌新来说非常有帮助。。。
C#和西门子PLC1200 以太网通讯
05-22
C#和西门子PLC以太网通讯,上位机代码
C#编写的局域网通讯 TCP/IP
09-05
C# 局域网 TCP/IP 通讯 非常好用,测试OK 以太网通讯
C#与西门子1200以太网通讯源码
03-14
西门子S7-1200紧凑型PLC在当前的市场中有着广泛的应用,由于其性价比高,所以常被用作小型自动化控制设备的控制器,这也使得它经常与第三方的设备扫描枪、打印机等设备进行通讯。
基于C#平台通过S7.net实现与西门子S7-200SMART的以太网通信方法.docx
12-06
基于C#平台通过S7.net实现与西门子S7-200SMART的以太网通信方法
C#利用SharpPcap发送以太网报文(以太网原始帧),可发送任意以太网
01-13
C#利用SharpPcap发送以太网报文(以太网原始帧),软件基本流程:从文件读取要发送的帧内容,然后找到电脑上的以太网卡,接下来利用SharpPcap来循环发送。 vs2008工程,全部源代码,可编译和测试。 以太网帧内容...
C#应用视频教程1.4 实现完整以太网通讯
weixin_30470857的博客
09-24 183
对于事件和委托机制不够理解的读者可以参考本节提供的委托相关的范例程序,这个是控制台的程序,比较简洁(书店发布一本书的事件注册到某个读者A身上,原理跟前面一小节讲的是一致的,只不过没有通过委托对外发送数据,所以实用性不是很广,后面还有两个范例也是对事件和委托的进一步深入) 事实上我任意一个控件双击事件进去也是这么个套路,比如整个程序的加载和关闭事件,我们只是在Form的事件上选几个鼠...
C#实现PLC上位机以太网通信 (附完整源码)
希望我的博客,能帮上你解决学习中工作中所遇到的问题
03-24 241
C#实现PLC上位机以太网通信 (附完整源码)
C#以太网链接
05-31
要在C#中建立以太网连接,需要使用System.Net.Sockets命名空间中的Socket类。以下是一个简单的示例代码,可以用于建立以太网连接: ```csharp using System; using System.Net; using System.Net.Sockets; class EthernetConnection { static void Main(string[] args) { // 设置IP地址和端口号 string ipAddress = "192.168.0.100"; int port = 8080; // 创建Socket对象 Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); // 连接服务器 IPAddress ip = IPAddress.Parse(ipAddress); IPEndPoint endPoint = new IPEndPoint(ip, port); socket.Connect(endPoint); // 发送数据 string data = "Hello, world!"; byte[] buffer = System.Text.Encoding.ASCII.GetBytes(data); socket.Send(buffer); // 关闭连接 socket.Shutdown(SocketShutdown.Both); socket.Close(); } } ``` 在这个示例中,我们首先设置了要连接的IP地址和端口号。然后创建一个Socket对象,并使用Connect方法连接服务器。最后,我们将要发送的数据转换为字节数组,并使用Send方法将其发送到服务器。最后,我们关闭Socket连接。
写文章

热门文章

  • 台达伺服【B3】 21935
  • 汇川PLC型号比较 19198
  • 3D打印机 G代码解释 16179
  • Task启动,暂停,继续,结束 16111
  • ST语言入门【维修电工Demo】 14189

分类专栏

  • 重启CAN轴项目 付费 18篇
  • PLC编程(禾川,汇川) 64篇
  • FPGA 18篇
  • visual studio 40篇
  • C#多线程 3篇
  • C#以太网 7篇
  • C#基础 37篇
  • C#中级 19篇
  • 现场总线 18篇
  • 数据库 12篇
  • C#_库 17篇
  • 工作 20篇
  • 3D打印机,Marlin,Grbl,CNC 17篇
  • Sting 13篇
  • C#串口 11篇
  • 单片机 16篇
  • 无线模块 1篇

最新评论

  • modbusTCP【C#,socket】

    前排啃鸡爪: 感谢大佬,对于我这种小白正好合适

  • codesys【虚轴】

    m0_74886474: 哥,之前我看您发了一篇有关C#解析G代码的帖子,您方便帮我解答一些问题吗

  • CANopen协议,上位机开发(C#)

    最帅的皮皮虾: 可以发源码吗

  • USBcan盒子(读写寄存器)

    qianqian070802: 你好,博主,有以太网转Can的例子吗

  • codesys【modbusTCP】

    ༄误区࿐: 以太网配置地址界面什么都没有怎么办

大家在看

  • 一文告诉您SonarQube的社区版,开发版,企业版以及数据中心版该怎样选
  • 新生码神修炼指南:从小白到码神的避坑之路 571
  • 基于springboot+vue实现的健身房管理系统 (源码+L文+ppt)4-097
  • 西门子学习之路
  • C++ (三) 模块化编程

最新文章

  • Socket【C#】Demo
  • codesys【modbusRTU】从站
  • rs485【io模块】
2024年36篇
2023年143篇
2022年121篇
2021年29篇

目录

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳坪山网站建设公司知名的网站优化哪里不错驻马店网站优化福田怎么网站优化方案seo优化公司网站优化网站 主题优化类网站牛排网站怎么优化余杭区网站优化卫辉资讯网站搭建优化沁阳优化网站排名哪里好开封百度网站优化哪家好南沙网站搜索优化什么是网站性能优化有实力的企业网站优化公司栾城网站关键词优化哪家好阿勒泰网站关键词优化网站性能优化的好处新乐公司网站优化无锡网站优化公司公司成功的网站关键词优化重庆网站优化seo公司吴江网站优化公司深圳企业网站推广优化网站优化公司厂商联系方式中文语言优化网站外包网站优化百度权重西藏网站搜索优化优质网站怎么提高优化网站的seo优化方案街道口网站优化香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

深圳坪山网站建设公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化