TCP/IP网络编程

环境介绍

  操作系统:Ubuntu20.04
  实现语言:C++
  编译器:gcc version 9.3.0
  编译工具:cmake version 3.16.3
  编辑器:VS Code  
  远程工具:VS Code  

socket编程简介

  网络编程领域需要一定的操作系统、计算机网络的相关知识。至少要对于基本的概念有所理解,这样才有助于网络编程的实现。就个人目前的理解来说,对socket编程的相关操作类似于对串口进行的操作。无非是,USB是设备间的物理接口,socket是设备之间的“网络接口”。两者的操作方式有着诸多相似之处,可以对比理解。
  学习网络编程可以参考教材《TCP/IP网络编程》(韩)尹圣雨。

TCP

  TCP是面向连接的,使用面向字节流的套接字。这种传输方式提供可靠交付,有流量控制,拥塞控制,提供全双工通信,每一条TCP连接只能是点对点的,即一对一的传输方式。使用socket创建TCP连接的函数调用过程如下所示:
  (1)服务端函数调用过程

  (2)客户端函数调用过程