zoukankan      html  css  js  c++  java
  • C#应用视频教程1.1 Socket通信基础

    做Socket通信之前,我们首先要实现几个基本的功能

    获取本机IP地址(如果我们要做Socket的服务器,肯定不希望用户每次填写本机IP地址,而是自动获取本机IP地址,这一点我们最好能做的比已有的软件更合理,更好用),下面的方法简单实现了获取本机IP地址,后面一个方法还把IPV6的地址也得到了,但是目前还没有什么用处(可能以后用得到)

     

    能PING通一个远程的IP地址(如果我们要做Socket的客户端,最好在连接之前能知道目标IP能不能连接上,如果不能PING通,则直接告诉用户网络连接有问题就行了,此外还能做心跳包,比如QQ断线检测,每隔一定时间PING通就认为网络连接正常,否则认为网络有问题,所以这个功能还是比较实用的)

     

    能从一个网址解析出他对应的IP地址(这个在自动化领域应用不是很广泛,因为这个行业里面不管是Socket的服务器还是客户端都是一些小设备,IP地址都是自己设置上去的,不会牵扯到某个网址的IP,但是为了把这个类做的比较全,也可以加深对Socket相关类的理解,还是有必要涉及一下,读者至少需要明白其实一个网址就是一个IP地址)

     

    了解什么是服务器,什么是客户端(给别人提供服务的就是服务器,享受服务的就是客户端,就像宾馆提供房间,客户才能入住),我们可以先用第三方的软件测试一下(在附件程序中打开SocketTest这个工具,它本身是JAVA写的,但是很短小很精悍,我们本节教程目的也是实现这样一个功能),首先是Server端开启某个Port,然后Client端连接上去,然后就可以互相发消息,当然也可以断开连接等等(要切记首先必须服务器开启服务,客户端才能连接,如果宾馆的某个房间不开放,那客户端就没法进去,至于房间开放,客户进去之后,谁跟谁说话都是可以的

     

    其次要知道Socket通信的意义,因为他是基于以太网的通讯协议,比串口,总线都要简单的多,也好用的多,基本上大部分的工业设备都会支持这个协议,而且不受限于操作系统,微软的,安卓的,Linux,MaxOS的都可以互相发消息。即便是在同一台计算器上,不同软件之间也可以互相通信,所以把这个通信研究好的意义还是很大的(在下面的测试中,我用了一个另外的调试工具跟SocketTest做通讯测试,像这样的网络调试助手网上很容易找到)

     

    最后来看一下百度百科对Socket的解释,比较形象(他比喻成插座)

    https://baike.baidu.com/item/socket/281150?fr=aladdin

     

     

     

    更多教学视频和资料下载,欢迎关注以下信息:

    我的优酷空间:

    http://i.youku.com/acetaohai123

     

    我的在线论坛:

    http://csrobot.gz01.bdysite.com/

     

    问题交流:

    QQ:910358960

    邮箱:acetaohai123@163.com

     

     

  • 相关阅读:
    算法初探
    OIer数学相关
    算法初探
    MySQL事务
    MySQL多表查询
    数据库的设计
    winform选择文件夹
    获取上次打开目录
    C#拆分中文和数字字符串
    uCharts如何设置双Y轴,左侧一个右侧一个,数据源与对应的Y轴绑定
  • 原文地址:https://www.cnblogs.com/acetaohai123/p/7586734.html
Copyright © 2011-2022 走看看