socket编程聊天软件(微信能聊天都靠它)

socket编程聊天软件(微信能聊天都靠它)(1)

说起网络信息交流,那肯定都知道微信,QQ等即时通信软件,那QQ微信等聊天软件是如何实现信息传输的呢?如何实现的呢?这就不得不提本篇的主角“socket”了。

socket编程聊天软件(微信能聊天都靠它)(2)

那socket到底是什么呢?它被翻译为“套接字”,是计算机进行交流通信的一种约定或者叫方式,通过socket,两个计算机就可以互相交换数据了。

socket编程聊天软件(微信能聊天都靠它)(3)

如下图所示,它处于传输层与应用层之间,是一种抽象存在的东西,也正是它的存在,所以我们在调用TCP/IP, UDP时不需要明白它们的内在原理,直接调用就好了,因为socket已经为你做好了所有的适配工作。

socket编程聊天软件(微信能聊天都靠它)(4)

在理解socket之前,我们先来了解网络中进程是如何进行通信的。以下以A电脑和B电脑为例。

首先A电脑和B电脑得需要自己的名字(不知道名字我怎么找到你?),在电脑中,它们有自己的唯一MAC地址,但在网络中,它们需要一个网络中的身份名字,而这个名字就是IP,有了IP之后,AB电脑都有了自己的名字,那接下来就需要建立连接,而链接就需要网络,网络又得按照特定的协议传输,所以就需要一个协议标志如TCP或UDP协议,而在OS网络模型中,传输层用“协议 端口”来唯一标示主机中的应用程序(进程),所以至此就组成了网络传输中的三个必备要素“IP地址,协议,端口”,进程通信完成。

socket编程聊天软件(微信能聊天都靠它)(5)

所以在选用协议的过程中,服务端和应用端必须使用同一种协议,否则就无法正常网络通信。

socket编程聊天软件(微信能聊天都靠它)(6)

那么socket原理是怎样的?

首先是服务端,创建socket(),绑定好socket与端口,然后开始监听,等待着其他客户端的连接。

socket编程聊天软件(微信能聊天都靠它)(7)

然后是客户端,它同样需要创建socket(),然后去寻找指定的服务端IP地址和端口,连接到正处于监听状态的服务端。

服务端收到了客户端的连接请求,至此,服务端和客户端正式建立起网络连接,可以互相发送数据信息。

socket编程聊天软件(微信能聊天都靠它)(8)

最后来看一下实例,直接socket安排(这里用的语言是python)

服务端:

socket编程聊天软件(微信能聊天都靠它)(9)

客户端:

socket编程聊天软件(微信能聊天都靠它)(10)

具体实现原理还需要了解socket内部的一些函数,这个下期会单独详细讲解(由于篇幅过长)。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页