查看: 193|回复: 0

[技术] 【赚周年币】技术帖——Fireduino学习9:TCP客户端测试 [复...

[复制链接]

1553

主题

25

好友

1万

积分

翰林

Rank: 7Rank: 7Rank: 7

  • TA的每日心情
    奋斗
    昨天 13:46
  • 签到天数: 983 天

    连续签到: 4 天

    [LV.10]以坛为家III

    活跃会员勋章 发帖机器勋章 在线之王勋章

    发表于 2016-12-12 16:35:30 |显示全部楼层
    本帖最后由 wudianjun2001 于 2016-12-12 16:36 编辑

       上一次测试的是TCP模式的服务器模式,这次我们来测试TCP的客户端程序,就是连接到服务器的端口,连接成功后进行收发数据通信。

    WiFi组网通信
           一般架设WiFi无线网络是由一个Access Point (AP)和多个无线网卡站点(STA)组成的无线网络。AP一般称为网络桥接器或接入点,俗称 ”热点“,它是当作传统的有线局域网络与无线局域网络之间的桥梁,因此任何一台装有无线网卡的站点(STA)均可透过AP去分享有线局域网络甚至广域网络的资源,其工作原理相当于一个内置无线发射器的HUB或者是路由, 而无线网卡则是负责接收由AP所发射信号的CLIENT端设备,如此便能以无线的模式,配合既有的有线架构来分享网络资源,架设复杂程度远远低于传统的有线网络。

    WiFi的网络连接
    WiFi接入过程三个阶段
           STA(工作站)启动初始化、开始正式使用AP传送数据帧前,要经过三个阶段才能够接入(802.11MAC层负责客户端与AP之间的通讯,功能包括扫描、接入、认证、加密、漫游和同步等功能):
      1)扫描阶段(SCAN)
      2)认证阶段 (Authentication)
      3)关联(Association)

    Scanning
           802.11 MAC 使用Scanning来搜索AP,STA搜索并连接一个AP,当STA漫游时寻找连接一个新的AP,STA会在在每个可用的信道上进行搜索。
      1)Passive Scanning(特点:找到时间较长,但STA节电)
        通过侦听AP定期发送的Beacon帧来发现网络,该帧提供了AP及所在BSS相关信息:“我在这里”…
      2)Active Scanning (特点:能迅速找到)
        STA依次在13个信道发出Probe Request帧,寻找与STA所属有相同SSID的AP,若找不到相同SSID的AP,则一直扫描下去..

    Authentication
           当STA找到与其有相同SSID的AP,在SSID匹配的AP中,根据收到的AP信号强度,选择一个信号最强的AP,然后进入认证阶段。只有身份认证通过的站点才能进行无线接入访问。AP提供如下认证方法:
      1)开放系统身份认证(open-system authentication)
      2)共享密钥认证(shared-keyauthentication)
      3)WPA PSK认证( Pre-shared key)
      4)802.1X EAP认证

    Association
           当AP向STA返回认证响应信息,身份认证获得通过后,进入关联阶段。
      1) STA向AP发送关联请求
      2) AP 向STA返回关联响应
      至此,接入过程才完成,STA初始化完毕,可以开始向AP传送数据帧。

    网络通信
           网络是用物理链路将各个孤立的工作站或主机相连在一起,组成数据链路,从而达到资源共享和通信的目的。通信是人与人之间通过某种媒体进行的信息交流与传递。网络通信是通过网络将各个孤立的设备进行连接,通过信息交换实现人与人,人与计算机,计算机与计算机之间的通信。网络通信中最重要的就是网络通信协议。当今网络协议有很多,局域网中最常用的有三个网络协议:MICROSOFT的NETBEUI、NOVELL的IPX/SPX和TCP/IP协议。Fireduino 的网络通信协议为TCP/IP协议。

    TCP与 UDP
           TCP (Transmission ControlProtocol)和UDP(User Datagram Protocol)协议属于传输层协议。其中TCP提供IP环境下的数据可靠传输,它提供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复用。通过面向连接、端到端和可靠的数据包发送。通俗说,它是事先为所发送的数据开辟出连接好的通道,然后再进行数据发送;而UDP则不为IP提供可靠性、流控或差错恢复功能。一般来说,TCP对应的是可靠性要求高的应用,而UDP对应的则是可靠性要求低、传输经济的应用。

    面向连接的TCP
           “面向连接”就是在正式通信前必须要与对方建立起连接。比如你给别人打电话,必须等线路接通了、对方拿起话筒才能相互通话。 TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂,我们这里只做简单、形象的介绍,你只要做到能够理解这个过程即可。我们来看看这三次对话的简单过程:主机A向主机B发出连接请求数据包:“我想给你发数据,可以吗?”,这是第一次对话;主机B向主机 A发送同意连接和要求同步(同步就是两台主机一个在发送,一个在接收,协调工作)的数据包:“可以,你什么时候发?”,这是第二次对话;主机A再发出一个数据包确认主机B的要求同步:“我现在就发,你接着吧!”,这是第三次对话。三次“对话”的目的是使数据包的发送和接收同步,经过三次“对话”之后,主机A才向主机B正式发送数据。 TCP协议能为应用程序提供可靠的通信连接,使一台计算机发出的字节流无差错地发往网络上的其他计算机,对可靠性要求高的数据通信系统往往使用TCP协议传输数据。

    面向非连接的UDP协议
           “面向非连接”就是在正式通信前不必与对方先建立连接,不管对方状态就直接发送。与手机短信非常相似:你在发短信的时候,只需要输入对方手机号就OK了。 UDP(User DataProtocol,用户数据报协议)是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去! UDP是一个无连接协议,传输数据之前源端和终端不建立连接,当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。

    TCP与UDP的差别
    TCP协议和UDP协议各有所长、各有所短,适用于不同要求的通信环境。TCP协议和UDP协议之间的差别如下
      1.TCP为面向连接,UDP面向非连接
      2.TCP是可靠的传输协议,UDP为不可靠的传输协议
      3.TCP传输大量的数据,UDP传输少量的数据
      4.TCP速度慢,UDP速度快


    网络参数定义,这里定义了服务器的地址
    1.png

    网络初始化,连接到服务器的1000端口,连接成功后发送信息
    2.png
    3.png


    主循环的内容
    4.png

    PC机上,建立个服务器,1000端口监听
    5.png

    板卡上电后连接成功后打印信息
    6.png

    软件收到连接成功的信息后,发送数据给客户端
    7.png

    客户端收到后显示信息
    8.png

    断开连接打印
    9.png
    源代码
    fire.rar (8.8 KB, 下载次数: 2)

    已有 1 人评分 收起 理由
    loveeeboard + 15

    总评分:  + 15   查看全部评分

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    关闭

    站长推荐上一条 /4 下一条

    手机版|爱板网 |网站地图  

    GMT+8, 2017-7-23 16:35 , Processed in 0.111405 second(s), 11 queries , Memcache On.

    苏公网安备 32059002001056号

    Powered by Discuz!

    回顶部