打印

【转帖】嵌入式4412学习网络编程 | socket服务器讲解

[复制链接]
875|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jugaga|  楼主 | 2019-10-18 14:18 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
  
本文转自微信公众号:迅为电子


大家好,在这里先跟大家说声抱歉,更新推迟了这么久,有的小伙伴已经快把法师的后台给爆破掉了。因为最近真的抽不出来时间为大家更新,但是小伙伴请放心,既然我们做了这个学习和交流的平台,法师一定会克服一切困难,为大家维护这个小圈子。
       大家可以加一下迅为的粉丝群,在群里面,大家可以一起交流学习,或是在里面催更,这个群是谁都可以加的,如果有喜欢嵌入式的同学,也可以拉他们进来,我们集体来维护这个学习的小圈子,群号:822183461
       今天我来学习socket服务器代码的编写,在写这篇**之前,法师想了好久要怎么写,怎么讲才能让基础不好的小伙伴快速理解这个知识点,既不能说的很深入,也不能一笔带过,否则就太**肋了。如果大家看了**感觉不错,可以在评论区留言,和法师互动一下,这样我就知道你看懂啦~
        话不多说,我们先来看代码,这里以TCP为例子注意是TCPsocket服务器代码如下:
乍看一眼,这些代码是不是很让人头疼呢,说好的让我们快速理解这个知识点呢?不要着急,我们来分步看一下,逐个击破,首先来看下这个代码的整体的一个思路,也就是程序框图。对他有一个整体的把握。
框图如下:
通过上面的框图我们知道,一共分为五个步骤,第一步我们要先创建一个socket。第一步代码如下,也就是上面的第一个截图。
这句代码的意思是创建一个socket,使用IPV4,TCP协议,自动协商协议。具体解析如下:
第一步是不是很简单,我们一个函数就搞定了,我们来看第二步,绑定一个socket,代码如下:
绑定一个socket我们使用的是bind函数,这里的结构体成员大家只要先记住就好,先不要去深究他,我们最后说这个特殊的结构体,注意端口号不要超过65535,因为端口号的范围是1-65535,并且1-1024我们最好也不要使用,因为有的程序会占用,最好用后面的。
       网络通信是大端序。所以用到了htonl()函数,大端序为高字节在低,低字节在高,小端序反之。
代码解析:
小端转大端函数:
到这里第二步就结束了,这里的知识如果有不懂的,大家先不要去深究他,记住就可以了,不然万一钻牛角尖会越陷越深。比如,为什么网络通信是大端序,不要管为什么,我们记住他是大端序就OK了。
       第三步就比较简单了,开始监听,这里我使用listen函数,代码如下:
代码解析:
第四步,接收连接,我们是accept函数,accept函数是会阻塞的,代码如下:
代码解析:
是不是有些头疼了,我们来看最后一步,开始读写。代码如下:
这样,我们服务器的代码就写完了,然后在回头看整个的代码是不是就轻松多了?这部分呢,大家只要记住这个流程图和这几个函数,就可以快速的掌握这个知识点了。哪怕代码不懂,不会写,心里一定要记住法师的这个流程图。万一在秋招中遇到这个问题是不是就赚了呢~~,下篇**我们一起来看客户端代码的编写并在开发板上进行验证。
http://topeetboard.com



迅为微信.jpg (191.83 KB )

迅为微信.jpg

使用特权

评论回复

相关帖子

沙发
1470432022| | 2019-11-4 10:48 | 只看该作者
牛呀

使用特权

评论回复
板凳
密码里的秘密| | 2019-12-10 09:54 | 只看该作者
学习了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

104

主题

118

帖子

1

粉丝