socket 编程基础
开始之前,我们先来梳理一下,需要提前了解的几个概念:
socket: 直译为“插座”,在计算机通信领域,socket 被翻译为“套接字”,它是计算机之间进行通信的一种约定或一种方式。通过 socket 这种约定,一台计算机可以接收其他计算机的数据,也可以向其他计算机发送数据。我们把插头插到插座上就能从电网获得电力供应,同样,应用程序为了与远程计算机进行数据传输,需要连接到因特网,而 socket 就是用来连接到因特网的工具。
另外还需要知道的是,socket 编程的基本流程。
![1072f0df2b5ca417be17511c5c4e1930.png](https://i-blog.csdnimg.cn/blog_migrate/e708978f8014fd00b0f0ab7b3e738e30.jpeg)
2. 同步阻塞IO
先回顾下概念:阻塞IO是指,应用进程中线程在发起IO调用后至内核执行IO操作返回结果之前,若发起系统调用的线程一直处于等待状态,则此次IO操作为阻塞IO。
![0b78ce62d06b516d8aa637fe0fcfa2fb.gif](https://i-blog.csdnimg.cn/blog_migrate/1d3bed800dcb07b38104019acbb36705.gif)
代码很简单,直接看注释就OK了,运行结果如上图所示,但有几个问题点需要着重说明下: