php和python请求socket服务器

来源:互联网 发布:光纤网络监控方案 编辑:程序博客网 时间:2024/06/06 00:04

一直对socket这个概念比较模糊,正好最近学习python时有socket这一章节。稍微研究了一下。

我的解释

不照搬概念,用我自己的理解稍微解释一下什么是socket。socket又称“套接字”,是一种通信机制。可以理解为http协议。但是socket本身不是一种协议。他用于不同应用程序间的通信。
本文使用python简单搭建一个socket服务器。通过python、php两种方式进行通信。大体上能清楚socket是一个什么样的东西。

socket服务器

我把注释已经写在代码中,就不具体解释。
host = ‘0.0.0.0’的意思是绑定本机所有IP地址

# coding:utf-8import socketimport datetimeHOST = '0.0.0.0'PORT = 3434s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)  #创建一个sockets.bind((HOST,PORT)) #绑定sockets.listen(1) #开始监听while True:    conn,addr = s.accept() #接受客户端连接请求    print('Client s connected!')    dt = datetime.datetime.now()  #创建一个当前时间    message = 'server time is'+str(dt)    conn.send(message.encode('utf8'))  #向客户端返回数据    print(message.encode('utf8'))    conn.close() #关闭连接

python客户端

# coding:utf-8import socketHOST = '127.0.0.1'PORT =3434s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) #创建sockets.connect((HOST,PORT)) #连接socket服务器data = s.recv(1024) #接收服务器返回数据 1024数据大小print(data) s.close() #关闭连接

python执行结果

服务器执行结果
这里写图片描述

客户端执行结果
这里写图片描述

PHP客户端

注释的代码为第二种请求方法

        // 创建socket        $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);         // 连接服务器        $connection = socket_connect($socket, '127.0.0.1', '3434');          // 接收返回数据        $buffer = socket_read($socket, 1024);        echo $buffer;        // $socket = fsockopen("127.0.0.1",3434,$errno,$errster,1);        // echo fread($socket,128);

php执行结果

客户端执行结果
这里写图片描述

0 0
原创粉丝点击