1 . 使用linux c++,实现一个client和server,要求对功能做一些简单的封装,设计成几个简单的类,使用Makefile进行依赖管理;
2 . client使用连接池技术管理与服务器的通信,主线程间隔1s从连接池中取到一个连接,发送到server端,请求的格式为json,其中只有一个key为id;
3 . server使用epoll+多线程进行设计,工作线程取到client的请求后,响应一段protobuf格式的内容,形如:value:xxx,其中,xxx的值为id+1;
4 . client读到响应后,将响应的内容反序列化,并打印到日志文件,日志格式自定义(日志库可以使用开源的,如果没用过的话,可以网上了解);
5 . client和server相关的配置通过配置文件进行设计,配置文件可以是纯文本形式,也可以是json格式。


通过这道题目可以很好的训练自己的基于Linux的C++服务器编程功底,本人因为是嵌入式出身,但一直想转型互联网的Linux C++服务器方向,因为没有相关经验,所以当时面试官先拿了这道题来考考自己的快速学习能力,如果你也想试一试自己的水平,不防可以试一试。


本人花了一天的时间写出了程序的初稿,给出了完成实现,具体是研究了该小项目需要利用的相关技术(比如:socket多线程编程,socket连接池,epoll机制,Json序列化及反序列化,protobuf序列化与反序列化,日志库等)。由于时间仓促,写出来后,面试官说还是有些小问题,我今天就share我的代码 github上的socket编程小项目,让大家一起来看看,希望能与大家共同进步,也希望大牛们能提出自己的见解,给出自己的完整实现。
因为之前很少接触这块东西,中途碰到了许多搭建环境及配开源工具的问题,本人用到了如下的开源工具:

  1. protobuf (google的一种高效且极具兼容性的二进制数据传输、交换格式)
  2. jsoncpp (json 序列化及反序列化的C++工具,当时我还不知道什么是(反)序列化)
  3. log4cplus (日志比较全面的C++开源工具)
    需要先安装这些工具,具体安装过程可以参见其他网上,这里就是jsoncpp安装稍需注意,请参见jsoncpp安装方法

现在我列下自己的代码分布情况,源码可以先去我的github上下载。该小项目,总共分为客户端(ClientMain.cpp, ClientSocket.cpp, ConnectionPool.cpp)+服务器端(ServerMain.cpp, ServerSocket.cpp),其中 ClientSocket及ServerSocket皆继承Socket.cpp,代码风格不是很好,朋友们也可以给出自己的建议。

我的运行结果如下:


我说说做该小项目的几点感受:

  1. 发现互联网的新技术很多很新,是真的很能锻炼人。
  2. 如果可以重来,我当时应该不会选择传统行业,工作后在转型会比较痛苦。
  3. 自己是嵌入式出身,如果想转互联网,很多之前学的东西感觉都没什么大的用处,有一种抛弃一切,重新开始的感觉。
  4. 平时有时间可以多关注互联网技术,特别是些开源的技术。

最后,我附上一个连接,如果有想转型Linux C++ 服务器端开发的同学,可以参考下。
服务器端开发需看书箱

转载于:https://www.cnblogs.com/qianggezhishen/p/7349503.html

wifi 万能钥匙面试题目相关推荐

  1. WIFI万能钥匙面试引出上线注意事项

    WEB应用上线程序员注意事项: 单元测试前后端联调界面和用户体验DEBUG性能SEO安全性 转载于:https://www.cnblogs.com/sefaultment/p/9403367.html

  2. 极客新闻——04、WiFi万能钥匙万玉权:管理应该是“自下而上”

    本文笔记全部来自<极客新闻>--新鲜的技术资讯.权威的趋势剖析.别样的技术洞察 每一个技术出身的人都是有理想和抱负的. 2017 年,万玉权已经是 WiFi 万能钥匙事业群的最高负责人,事 ...

  3. WiFi万能钥匙发布iOS4.0新增骚扰电话拦截功能

    近日,连尚网络旗下产品WiFi万能钥匙发布了iOS4.0最新版本.根据用户的需求反馈,WiFi万能钥匙iOS4.0新增了骚扰电话拦截等多个功能.版本更新后,WiFi万能钥匙在连接成功率和使用流畅程度上 ...

  4. 今日头条遭罚 94 万;快手、火山小视频整改「低俗」;Wi-Fi 万能钥匙被调查 | CSDN极客头条

    点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! 「CSDN 极客头条」是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报 ...

  5. “WiFi 万能钥匙”盗 9 亿用户数据,如何看待运营平台滥用隐私的问题?

    点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! 相信很多朋友都用过 WiFi 万能钥匙,出门在外,它能随时随地解锁周边的 WiFi 给我们用 ...

  6. wifi万能钥匙自媒体平台开放注册(付注册流程)

    12月13日,有网友爆料,wifi万能钥匙自媒体开放注册,看来自媒体还没有达到饱和阶段,也印证了自媒体时代才刚刚到来.现在这个自媒体的时代,几乎大多互联网企业都开通了自己的自媒体,比较知名的像今日头条 ...

  7. iPhone共享WIFI密码到Macbook - 无需在Mac上使用WIFI万能钥匙

    目标 1.iPhone获取到某个WIFI的密码(通过WIFI万能钥匙) 2.在Macbook上获取iPhone分享的WIFI密码 步骤 确定iPhone已经连接到WIFI(假设叫'TP_Link-88 ...

  8. WiFi万能钥匙,真的过气了?

    不可否认,WiFi万能钥匙正在淡出移动互联网市场,曾经风靡一时的蹭WiFi风潮成为了过去式. WiFi万能钥匙的成功是必然的.当年三大电信运营商流量收费奇高,省钱用户纷纷瞄准公共空间的WiFi,不过很 ...

  9. WIFI万能钥匙显密码版

    WIFI万能钥匙显密码版是无需ROOT的万能钥匙,同时这个版本做了一些精简和优化,,永不升级,但是不要随意连接各类WIFI. WIFI万能钥匙显密码版 [破解说明] 免root查看密码,支持一键复制 ...

最新文章

  1. selenium之定位以及切换frame
  2. ras私钥c#转java_C#RSA对接JAVA中RSA方式代码实例
  3. Razor.js,基于JavaScript的Razor实现
  4. slatstack Master的配置
  5. [vue] vue在created和mounted这两个生命周期中请求数据有什么区别呢?
  6. Hadoop 在 windows 7 64位的配置(一)|非cygwin
  7. 幼儿园案例经验迁移_共教研,促成长阳光天健城幼儿园9月份教研分享
  8. python3开发环境_python3开发环境安装
  9. HTML和CSS面试题—整理过的48题,关注收藏,持续更新
  10. 计算机机房运行环境条件要求,机房环境都有哪些要求
  11. 【环境配置】Ubuntu18.04配置高通骁龙神经处理引擎(SNPE)
  12. Appium自动化框架从0到1之 测试用例封装
  13. C语言中arr[0] 、arr 、arr
  14. 【任务中心】使用说明
  15. android p 荣耀v10,荣耀V10和V9哪个好 区别对比分析告诉你
  16. 电信光猫百兆端口(iTv)联网设置
  17. 大白菜U盘启动盘重装系统
  18. HTML调用百度地图API,实现地图标注位置
  19. TQ2440(ARM)和SIM300(GPRS模块)串口通信
  20. 细说linux挂载——mount

热门文章

  1. 命令符 微信收藏链接
  2. cpu核数和逻辑个数的区别_处理器个数和处理器核心数的区别
  3. 程序员vs瓦工 那么到底谁牛逼?
  4. 一个被清华大学辞退的50岁副教授
  5. Unity3d之UGUI图集打包与动态使用(TexturePacker)
  6. 以太网学习之二 物理介质(10Base、100Base-T、100Base-TX等)
  7. android qq 铃声大小设置,手机QQ自定义铃声怎么设置?手机QQ自定义铃声设置教程...
  8. 联想拯救者Y7000亮度调低后屏幕黑屏
  9. 用fastboot命令将boot.img文件push到机器里
  10. 揭秘WIFI万能钥匙 了解网络安全重要性