说起网络信息交流,那肯定都知道微信,QQ等即时通信软件,那QQ微信等聊天软件是如何实现信息传输的呢?如何实现的呢?这就不得不提本篇的主角“socket”了。
那socket到底是什么呢?它被翻译为“套接字”,是计算机进行交流通信的一种约定或者叫方式,通过socket,两个计算机就可以互相交换数据了。
如下图所示,它处于传输层与应用层之间,是一种抽象存在的东西,也正是它的存在,所以我们在调用TCP/IP, UDP时不需要明白它们的内在原理,直接调用就好了,因为socket已经为你做好了所有的适配工作。
在理解socket之前,我们先来了解网络中进程是如何进行通信的。以下以A电脑和B电脑为例。
首先A电脑和B电脑得需要自己的名字(不知道名字我怎么找到你?),在电脑中,它们有自己的唯一MAC地址,但在网络中,它们需要一个网络中的身份名字,而这个名字就是IP,有了IP之后,AB电脑都有了自己的名字,那接下来就需要建立连接,而链接就需要网络,网络又得按照特定的协议传输,所以就需要一个协议标志如TCP或UDP协议,而在OS网络模型中,传输层用“协议 端口”来唯一标示主机中的应用程序(进程),所以至此就组成了网络传输中的三个必备要素“IP地址,协议,端口”,进程通信完成。
所以在选用协议的过程中,服务端和应用端必须使用同一种协议,否则就无法正常网络通信。
那么socket原理是怎样的?
首先是服务端,创建socket(),绑定好socket与端口,然后开始监听,等待着其他客户端的连接。
然后是客户端,它同样需要创建socket(),然后去寻找指定的服务端IP地址和端口,连接到正处于监听状态的服务端。
服务端收到了客户端的连接请求,至此,服务端和客户端正式建立起网络连接,可以互相发送数据信息。
最后来看一下实例,直接socket安排(这里用的语言是python)
服务端:
客户端:
具体实现原理还需要了解socket内部的一些函数,这个下期会单独详细讲解(由于篇幅过长)。
,- 天猫双11花呗怎么还(最高49999元)
- 华为荣耀v30和华为p30有什么区别(荣耀20、荣耀V30、华为P30、Mate30对比)
- 映客直播平台分成多少(支持日结)
- 佳能r6和rp哪个好(购买佳能相机)
- 解压专家充值(共)
- 华为手机的录音文件存放在哪里(华为手机点击这个按钮)
- 石头阅读是不是被封了(几个冷门黑科技App)
- 剪映画中画抠像按钮是灰色的怎么办(4)
- keep新版健走怎么看步数(让你减肥不能停)
- 为什么轻颜相机拍完照片变长了(更美的你在轻颜等你)
- 蜻蜓fm怎么上传有声资料(蜻蜓FM的新旧生意经)
- 手机全景拍摄教程单人(如何拍美)
- qq输入法怎么打字出图片(QQ输入法)
- 苹果11 promax好还是苹果12pro(18快到了)
- 华为员工股份如何增值(为何能留住人才)
- 排名
- 软件
- 人气
- 下载