手动实现一个简单的网站服务器网站搭建流程 用户通过浏览器向网站服务器发送一个请求 当我们的网站服务器接收到请求后 返回页面数据如何使用python向浏览器发送数据? socket 网络模型 tcp 在互联网中可以发送/接收数据 微信

手动实现一个简单的网站服务器

'''

网站搭建流程

用户通过浏览器向网站服务器发送一个请求

当我们的网站服务器接收到请求后

返回页面数据

如何使用python向浏览器发送数据?

socket

网络模型

tcp

在互联网中可以发送/接收数据

微信 qq 信息传输原理全是基于tcp这个模型

可以运用在网站上的

客户端

接收数据 -----> 浏览器

服务端

发送数据 ----> python socket

udp

直播网站平台的

视频流 udp去发送

'''

import socket

# 创建一个新的函数 发送数据

def service_client(new_socket):

# 1. 当浏览器连接到网站服务器的时候 首先向服务器发送一些数据

'''

http 协议信息

所有的网站全部都是基于http协议去搭建的

:param new_socket:

:return:

'''

request = new_socket.recv(1024)

print(request)

# 2. 向浏览器发送http数据

response = 'HTTP/1.1 200 OK \r\n'

response += '\r\n'

# 写出你想要发送的数据

response += 'hello world'

# 将数据发送出去

# 发送的数据一定要指定一个编码集

new_socket.send(response.encode('utf-8'))

# 当服务完成之后 需要释放系统资源

new_socket.close()

# 声明一个tcp网络模型的函数

def main():

# 1.创建一个tcp套接字 [套接字就是专门负责与浏览器链接的一种对象]

'''

在socket方法中 需要传入两个参数

网络协议

ipv4 ipv6

网络模型的类型

tcp

:return:

'''

tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 2. 当网站服务终止时 需要释放电脑端口资源

tcp_server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

# 3. 绑定本机信息

'''

传入的值是一个元组

因为不光光需要电脑的ip地址

还需要网站运行的端口值

'''

tcp_server_socket.bind(('', 80))

# 需要将网站设置成监听模式

'''

等待浏览器链接

直到浏览器链接成功

128最大连接数

'''

tcp_server_socket.listen(128)

# 网站服务 显示你想要显示的内容

while True:

# 循环服务

'''

需要去声明一个新的套接字

因为旧套接字被占用了

当浏览器去链接网站服务的时候

已经在工作了

新的套接字负责发送/接收数据

'''

new_socket, client_addr = tcp_server_socket.accept()

'''

new_socket: 是新的套接字对象

client_addr: 浏览器访问网站服务器时, 向网站服务器发送一组数据

浏览器所在电脑的ip地址和端口

'''

# 使用新的套接字去发送数据 拆分成一个新的函数

service_client(new_socket)

if __name__ == '__main__':

main()

以上信息来源于网络,如有侵权,请联系站长删除。

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐