首页 > 技术文章 > 网络编程必要概念

creature-lurk 2021-07-17 01:13 原文

1.socket编程概念

  socket就是插座(中文翻译为套接字),运行在计算机中的两个程序通过socket建立起一个通道,数据在通道中传输。

  socket把复杂的TCP/IP协议簇隐藏了起来,对程序员来说,只要用好socket相关函数,就可以完成网络通信。

2.socket分类

  socket提供了流(stream)和数据报(datagram)两种通信机制,即流socket 和数据报socket。

  流socket基于TCP协议,是一个有序、可靠、双向字节流的通道,传输数据不会丢 失、不会重复、顺序也不会错乱。

   数据报socket基于UDP协议,不需要建立和维持连接,可能会丢失或错乱。UDP 不是一个可靠的协议,对数据的长度有限制,但是它的效率比较高。

  某些应用层协议, 出于历史原因,受当时技术和网络条件限制,选择了基于UDP实 现,其选择的理由现在很可能已经不再成立了。

  实时的音视频聊天可能采用的是UDP,这种业务可以接受数据的丢失且不必重传。

   本专题只介绍流socket,数据报socket的应用场景实在太少,以后可能更少。

3.简单的socket通信流程

推荐阅读