工控课堂

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

工控课堂 首页 工控文库 工控编程 查看内容

socket服务器构建方法

2020-2-7 19:13| 发布者: gkket| 查看: 1| 评论: 0|原作者: gkket

摘要: 大家好,在这里先跟大家说声抱歉,更新推迟了这么久,有的小伙伴已经快把法师的后台给爆破掉了。因为最近真的抽不出来时间为大家更新,但是小伙伴请放心,既然我们做了这个学习和交流的平台,法师一定会克服一切困难 ...
大家好,在这里先跟大家说声抱歉,更新推迟了这么久,有的小伙伴已经快把法师的后台给爆破掉了。因为最近真的抽不出来时间为大家更新,但是小伙伴请放心,既然我们做了这个学习和交流的平台,法师一定会克服一切困难,为大家维护这个小圈子。
       大家可以加一下迅为的粉丝群,在群里面,大家可以一起交流学习,或是在里面催更,这个群是谁都可以加的,如果有喜欢嵌入式的同学,也可以拉他们进来,我们集体来维护这个学习的小圈子,群号:822183461
       今天我来学习socket服务器代码的编写,在写这篇文章之前,法师想了好久要怎么写,怎么讲才能让基础不好的小伙伴快速理解这个知识点,既不能说的很深入,也不能一笔带过,否则就太鸡肋了。如果大家看了文章感觉不错,可以在评论区留言,和法师互动一下,这样我就知道你看懂啦~
        话不多说,我们先来看代码,这里以TCP为例子,注意是TCP。socket服务器代码如下:

      
       乍看一眼,这些代码是不是很让人头疼呢,说好的让我们快速理解这个知识点呢?不要着急,我们来分步看一下,逐个击破,首先来看下这个代码的整体的一个思路,也就是程序框图。对他有一个整体的把握。
框图如下:


      通过上面的框图我们知道,一共分为五个步骤,第一步我们要先创建一个socket。第一步代码如下,也就是上面的第一个截图。
      这句代码的意思是创建一个socket,使用IPV4,TCP协议,自动协商协议。具体解析如下:
      第一步是不是很简单,我们一个函数就搞定了,我们来看第二步,绑定一个socket,代码如下:
       绑定一个socket我们使用的是bind函数,这里的结构体成员大家只要先记住就好,先不要去深究他,我们最后说这个特殊的结构体,注意端口号不要超过65535,因为端口号的范围是1-65535,并且1-1024我们最好也不要使用,因为有的程序会占用,最好用后面的。
       网络通信是大端序。所以用到了htonl()函数,大端序为高字节在低,低字节在高,小端序反之。
代码解析:

小端转大端函数:
大端转小端函数:
        到这里第二步就结束了,这里的知识如果有不懂的,大家先不要去深究他,记住就可以了,不然万一钻牛角尖会越陷越深。比如,为什么网络通信是大端序,不要管为什么,我们记住他是大端序就OK了。
       第三步就比较简单了,开始监听,这里我使用listen函数,代码如下:
代码解析:
        第四步,接收连接,我们是accept函数,accept函数是会阻塞的,代码如下:
代码解析:
       是不是有些头疼了,我们来看最后一步,开始读写。代码如下:
      这样,我们服务器的代码就写完了,然后在回头看整个的代码是不是就轻松多了?这部分呢,大家只要记住这个流程图和这几个函数,就可以快速的掌握这个知识点了。哪怕代码不懂,不会写,心里一定要记住法师的这个流程图。万一在秋招中遇到这个问题是不是就赚了呢~~,下篇文章我们一起来看客户端代码的编写并在开发板上进行验证。


路过

雷人

握手

鲜花

鸡蛋

相关阅读

最新评论

热门文章

QQ|免责声明|本站介绍|工控课堂 ( 沪ICP备14007696号-3 )|网站地图

GMT+8, 2020-2-7 19:13 , Processed in 0.056932 second(s), 45 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

返回顶部