在前面几篇中,我给大家介绍了socket的相关知识,也给出了详细的代码,从socket的基本介绍,到IO多路复用,以及粘包拆包,最后到心跳包问题。总的来说大概都把socket网络编程中能碰见的问题都讲了,但肯定讲得不够深入,会有一些遗漏,如果有哪些知识点技术点的遗漏,欢迎大家指出,本人虚心接受。

现在我将socket网络编程前面几篇讲的内容重新梳理一遍。

《socket网络编程(一)——初识socket》。主要介绍了我们为什么需要socket,以及socket的相关函数,掌握这些函数你并不能写出很好的网络编程的代码,但是不掌握这些,你绝对写不出来。这些函数是socket网络编程的基石,任何复杂的网络通信底层肯定都有这些函数。

《socket网络编程(二)——实现持续发送》。要在网络通信的过程中持续地发送消息,而服务不会断掉,这个是必须掌握的。以及在持续发送的过程中碰见的一些怪异问题,该篇幅中有给大家介绍,以及给出了解决办法。

《socket网络编程(三)——select多路复用问题》。当有多台客户端的时候,我们又该如何通信呢?如何准确地把消息发到对应的客户端呢?这些都是多路复用该考虑的问题,这篇文章里通通都会给大家介绍。

《socket网络编程(四)——epoll多路复用问题 》。当服务达到了百万级、千万级的并发的时候,select多路复用就几乎是无能为力了,即使能做,也是影响效率,这是他的底层机制所决定的。所以就需要epoll多路复用了,如果你想搭建一个千万级的并发的系统,那么网络通信的底层必须是要用epoll。

《socket网络编程(五)——粘包拆包问题 》。TCP协议的通信机制导致了通信过程中会发生粘包和拆包的问题,这篇文章给大家介绍了发生的原因以及解决的办法,也给出了详细的代码。

《socket网络编程(六)——心跳包问题 》。心跳包也是在socket网络编程中要考虑的问题,主要用于检测客户端与服务端的连接是否还在,具体的实现大家可以参考这篇文章。

以上就是socket网络编程中需要掌握的地方,每篇文章都给出了详细的代码步骤,实践会偏多,理论知识点可能有点偏少。像TCP三次握手四次挥手这样经典的过程就并没有讲,网络讲解非常多,大家可以自己去搜搜看。后期如果有时间,我再来阐述。

毫不夸张地说,只要是为了实现网络通信,不管是C++、JAVA、PYTHON、LUA还是其他的语言,也不管是多么复杂难懂的框架,他们的底层框架都考虑到以上的东西,所以只要掌握了以上的理论知识,都可以很好的驾驭各种框架,甚至未来你可以写出属于自己网络通信的框架来,这就是所谓的造轮子能力。

更多精彩内容,请关注同名公众:一点笔记alittle

android tcp socket框架_socket网络编程知识梳理,让你学会造轮子的能力相关推荐

  1. android tcp socket框架_最流行的 Web 框架 Gin 源码阅读

    最近公司大部分项目开始往golang换, api的框架选定使用gin, 于是将 gin的源码看了一遍, 会用几篇文章将gin的流程及流程做一个梳理, 下面进入正题. gin框架预览 上图大概是 gin ...

  2. android tcp socket框架_花了一个星期,我终于把RPC框架整明白了

    [51CTO.com原创稿件]RPC(Remote Procedure Call):远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的思想. RPC 是一种技术思想而 ...

  3. 网络编程知识预备(3) ——SOCKET、TCP、HTTP之间的区别与联系

    参考:SOCKET,TCP,HTTP之间的区别与联系 作者:丶PURSUING 发布时间: 2021-03-19 11:54:01 网址:https://blog.csdn.net/weixin_44 ...

  4. 【面试】TCP、UDP、Socket、HTTP网络编程面试题

    文章目录 什么是网络编程 网络编程中两个主要的问题 网络协议是什么 为什么要对网络协议分层 计算机网络体系结构 1 TCP / UDP 1.1 什么是TCP/IP和UDP 1.2 TCP与UDP区别: ...

  5. 网络编程知识预备(1) ——了解OSI网络模型

    参考:简单了解OSI网络模型 作者:丶PURSUING 发布时间: 2021-03-18 20:07:09 网址:https://blog.csdn.net/weixin_44742824/artic ...

  6. JAVA网络编程知识学习

    JAVA网络编程知识学习 学习目标 第一章 网络编程入门 1.1软件结构 1.2 网络通信协议 1.3 协议分类 1.4 网络编程三要素 协议 IP地址 IP地址分类 常用命令 端口号 InetAdd ...

  7. C#_Socket网络编程实现的简单局域网内即时聊天,发送文件,抖动窗口。

    C#_Socket网络编程实现的简单局域网内即时聊天,发送文件,抖动窗口. 最近接触了C#Socket网络编程,试着做了试试(*^__^*) 实现多个客户端和服务端互相发送消息 发送文件 抖动窗口功能 ...

  8. 网络编程知识预备(5) ——libcurl库简介及其编程访问百度首页

    本文为学习笔记,整合课程内容以及下列文章: 其中,libcurl函数库常用字段解读部分: 参考博文:原文地址 作者:冬冬他哥哥 目录 Libcurl库简介 Libcurl等三方库的通用编译方法 三方库 ...

  9. 网络编程知识预备(4) ——了解应用层的HTTP协议与HTTPS协议

    参考:简单了解HTTP协议与HTTPS协议 作者:丶PURSUING 发布时间: 2021-03-15 10:55:13 网址:https://blog.csdn.net/weixin_4474282 ...

最新文章

  1. GhostNet : 轻量级网络模型,性能超越MobileNetV3(CVRP2020, 华为诺亚)
  2. OpenCV纠正文本中的偏斜(附完整代码)
  3. Jamie and Tree[CF916E]
  4. ftp上传文件出现“sftp: cannot open /usr/SmartStore_test/1.zip to write”
  5. 我对python的理解_python之我对装饰器的理解
  6. C语言排序方法-----希尔排序
  7. ClassNotFoundException: javax.validation.ValidatorFactory
  8. https配置的后序以及网页定位的测试
  9. POJ 2457 BFS
  10. python下载pps视频
  11. 2012年8月编程语言就业趋势
  12. AUTOSAR-基本概念
  13. bundle adjustment算法学习
  14. android 获取IP地址
  15. 如何调用EasyCVR平台的登录、播放地址、录像回看接口?
  16. ROS学习笔记publisher的编程实现c++详解
  17. Win7系统开机黑屏仅有鼠标怎么办【系统天地】
  18. 千寻位置终端配置参数说明
  19. 树莓派32位系统烧录及连接
  20. 专访网易有道雇主品牌:面向Z世代 雇主品牌怎么玩儿 | 牛客大咖说

热门文章

  1. H264 RTP头分析
  2. M-JPEG、MPEG4、H.264都有何区别 依维安防论坛
  3. 【docker】常用docker命令,及一些坑
  4. 通过界面生成时不存在的数据刷新界面引起的卡顿问题
  5. dojo 九 effects dojo/_base/fx 和 dojo/fx
  6. SQL SERVER 2012 AlwaysOn - 维护篇 03
  7. Java IO API记录
  8. 类的定义、成员定义修饰符
  9. uploadify scriptData参数无法传参的问题
  10. PictureBox