你绝对想象不到的端对端通信的几种方式
创始人
2024-04-17 02:42:12

一、前言
今天要和大家说的是我们常用的一些端对端的通信方式,这里我们会以python和php语言为主,举例说明客户端、浏览器端和服务器端通信,部分代码可能展示不全,不过我会放在文末链接供大家下载测试,下面我们先来让大家看看今天有哪些主题。

1、tcp
2、udp
3、ajax
4、websocket
5、sse
下面我们将从这几个方面一起来深入了解下这几种技术的实现方法。

二、TCP
1、Python版本:
首先来写服务器端,文件名为server.py,内容如下:

再来看看客户端,文件名为client.py,内容如下:

我们来看看运行结果,如下:

可以看到,接收发送信息都能实现,而且客户端下线了还有通知。

2、PHP版本
PHP想要进行TCP通信,我们得开启socket扩展,打开php目录下的php.ini文件,改动一处即可,如下:

开启后即可使用socket功能。得先首先还是服务器端代码,文件名为server.php,内容如下:

接下来是客户端,文件名为client.php,内容如下:

我们来看下结果,如下:

其实,php除了这种方式可以访问TCP连接外,还有两种方法,一种是fsockopen,还有一种是stream_socket_client,这里我们得服务器端代码不变,只对访问服务器端的客户端代码进行一些变动即可。

1).fsockopen

2).stream_socket_client

三、UDP
讲完了TCP,咱们再来说说UDP,这是一种不可靠的传输协议,但是速度快,这是它有别于TCP的地方,因此它比TCP更简单,实现一个UDP实例,代码会比前者少,下面我们一一来实现。

1、Python版本
先还是服务器端,文件名为server.py,内容如下:

其次是客户端,文件名为client.py,内容如下:

我们来看下运行结果如下:

2、PHP版本
先看服务器端的代码,文件名为server.php,内容如下:

再来看看客户端的代码,文件名为client.php,内容如下:

最后我们来看看执行结果,如下:

PHP的UDP通信和TCP一样,也有三种,上面我们介绍了一种,还有两种我们来一一介绍。

1).fsockopen
先来看看服务器端代码,文件名为server.php,内容如下:

再来看看客户端代码,文件名为client.php,内容如下:

2).stream_socket_client
这两种方法的的服务端是一样的,唯一的区别就是客户端有一点小小的区别,因此这里就不放服务端的代码了,只放客户端代码,如下:

我们来看看结果,如下:

四、AJAX
这应该算是我们比较熟悉的服务器端和浏览器端交互的方式了吧,而且为了方便一般都会使用jQuery去实现,有时候也会用原生的XMLHttpRequest,这里我们针对这两种方法一一实现。

1、Python版本
这里python版本的ajax我们使用flask实现会比较容易一些。

1).XMLHttpRequest

2).Jquery

下面来看下两者的运行结果,如下:

2、PHP版本
1).XMLHttpRequest

2).Jquery

下面来看下运行结果,如下:

五、websocket
1、Python版本
这里有两个版本,一个是原生的,利用socket模块,实现比较复杂,还有一种是利用模块,比较简单,下面我们一一介绍下。

1).原生
原生的话,会麻烦许多,主要是对服务器端的数据进行处理,如下:

下面来看下结果,如图:

2).模块
运用现有的websocket模块会比原生的简单很多,如图:

2、PHP版本
php也有原生和框架两个版本,下面我们来一一说明一下。

1).原生

2).workerman

六、SSE
1、Python版本

2、PHP版本

然后再cmd中运行PHP内置服务器,如下:

七、总结
以上就是比较常用的通信方式,其实每个编程语言基本上都可以实现,这里小编选择了两种比较熟悉的语言来进行举例,希望能帮到大家,以上所有代码如下:

Ajax
python:
https://url25.ctfile.com/f/34512525-740232809-e73a05?p=7054 (访问密码: 7054)

php:
https://url25.ctfile.com/f/34512525-740232808-2075d7?p=7054 (访问密码: 7054)

tcp
python:
https://url25.ctfile.com/f/34512525-740232796-eb04d1?p=7054 (访问密码: 7054)

php:
https://url25.ctfile.com/f/34512525-740232792-1e4408?p=7054 (访问密码: 7054)

udp
python:
https://url25.ctfile.com/f/34512525-740232786-8e234a?p=7054 (访问密码: 7054)

php:
https://url25.ctfile.com/f/34512525-740232785-57bcbc?p=7054 (访问密码: 7054)

websocket
python
原生:
https://url25.ctfile.com/f/34512525-740232779-a4aa14?p=7054 (访问密码: 7054)

模块:
https://url25.ctfile.com/f/34512525-740232778-9a8440?p=7054 (访问密码: 7054)

php
原生:
https://url25.ctfile.com/f/34512525-740232781-f7ddd4?p=7054 (访问密码: 7054)

框架:
https://url25.ctfile.com/f/34512525-740232780-ca7fce?p=7054 (访问密码: 7054)

sse
python:
https://url25.ctfile.com/f/34512525-740232774-27c899?p=7054 (访问密码: 7054)

php:
https://url25.ctfile.com/f/34512525-740232772-de8947?p=7054 (访问密码: 7054)

相关内容

热门资讯

阿西吧是什么意思 阿西吧相当于... 即使你没有受到过任何外语培训,你也懂四国语言。汉语:你好英语:Shit韩语:阿西吧(아,씨발! )日...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...