python通过socket 搭建极简web服务器

news2025/1/21 15:38:01

环境:win11、python 3.9.2

背景:python的web框架众多,常见的如django、flask、tornado等,其底层是什么还是有些许的疑问,所以查找相关资料,实现浏览器访问,并返回相关信息

时间:20231006

#coding: utf-8

"""
搭建简单服务器
"""

import socket

HOST = '0.0.0.0'     	#使用0.0.0.0,实现本机访问
PORT = 80               #设置端口号
ADDR = (HOST,PORT)		#放在一起就是套接字了

web = socket.socket()   #创建socket对象
web.bind(ADDR)			#绑定端口

web.listen(5)           #可同时连接5个客户端
print('sever is listening...')

while True:
    client_connection,client_address = web.accept()  #建立客户端连接
    print('link addr:')
    print(client_address)   #打印客户端发来的嵌套字

    client_connection.send(str.encode("HELLO,WORLD"))   #向客户端发送信息,需要byte类型的参数,需要做一下转换

    data = client_connection.recv(1024)
    print(data)

    client_connection.close()       #关闭连接

浏览器访问:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1063961.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

期权定价模型系列【8】:选择者期权(chooser option)定价模型

期权定价模型系列第8篇文章 1.前言 抉择型期权又称为随心所欲期权,是一种与时间相关的期权。这种期权的持有 人有权在到期日之前的某一段时期,决定该选择权为买权或卖权。因此,在决定的时间点,抉择型期权的价值应该为:…

命令解释器-Shell

目录 1. 概述 1.1. 概念 1.2. 分类: 1.3. type 命令 1.4.命令执行原理 2. Linux 中的特殊符号 3. 命令别名 3.1. 查看设置的别名 3.2. 常用的别名 3.3. 删除别名 3.6. 注意(alias永久化): 4. history 命令历史 例&a…

已解决:win的资源管理器右键菜单被折叠无法显示全内容?教你解决

win11在样式上整挺好的,那种圆润感是win10没法比拟的,但是有一个很严重的诟病,就是右键菜单的折叠,这个东西是资源管理器新增的一个功能,如果之前是win右键的重度用户,那么对于这种需要多点一步展开的操作&…

解决报错: require is not defined in ES module scope

用node启动mjs文件报错:require is not defined in ES module scope 现象如下: 原因: 文件后缀是mjs, 被识别为es模块,但是node默认是commonjs格式,不支持也不能识别es模块。 解决办法:把文件后缀从.mjs改…

【进阶C语言】排序函数(qsort)与模拟实现(回调函数的实例)

本章大致内容目录: 1.认识回调函数 2.排序函数qsort 3.模拟实现qsort 回调函数为C语言重要知识点,以函数指针为主要知识;下面介绍回调函数的定义、回调函数的库函数举例即库函数模拟实现。 一、回调函数 1.回调函数定义 回调函数就是一…

16哈希表-基础操作

目录 哈希表 散列思想 哈希表的实现 简单示例 开胃菜:LeetCode之路——242. 有效的字母异位词 分析 哈希表 英文名字为Hash table,散列表的英文叫“Hash Table”,我们平时也叫它“哈希表”或者“Hash表”。 哈希表(Hash Ta…

vue3中使用return语句返回this.$emit(),在同一行不执行,换行后才执行,好奇怪!

今天练习TodoList任务列表案例,该案例效果如图所示: 此案例除了根组件App.vue,还有TodoList、TodoInput、TodoButton三个子组件。 因为有视频讲解,在制作TodoList、TodoInput时很顺利,只是在完成TodoButton这个组件时出了点问题…

VR开发(一)——SteamVR实现摇杆移动

一、基础环境搭建 1.AssetStore 找到SteamVR并导入; 2.添加一个 VR 中代表玩家自己的物体。我可以打开 Assets/SteamVR/InteractionSystem/Core 文件夹,将 Player 物体拖入场景: 二、修改手柄按钮映射集 3.windows/steamVR input&#xff…

【程序员必看】计算机网络,快速了解网络层次、常用协议和物理设备!

文章目录 0 引言1 基础知识的定义1.1 计算机网络层次1.2 网络供应商 ISP1.3 猫、路由器、交换机1.4 IP协议1.5 TCP、UDP协议1.6 HTTP、HTTPS、FTP协议1.7 Web、Web浏览器、Web服务器1.8 以太网和WLAN1.9 Socket (网络套接字) 2 总结 0 引言 在学习的过程…

OpenResty编译安装详解

文章目录 一、概述1、OpenResty是什么2、官方文档 二、cengos安装OpenResty1、从官网下载2、目录结构3、编译安装 一、概述 1、OpenResty是什么 OpenResty 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖…

【Word】公式编辑器中连字符/减号等显示偏长/过长

问题 当公式编辑器中出现连字符的时候,连字符显示偏长,如下图所示: 方法 在连字符的前后加上双引号后即可解决连字符显示偏长的问题。 最终效果对比如下: 结语 Word的公式编辑器中,双引号内部的内容被当做普通…

基于FastAPI的文件上传和下载

基于FastAPI的文件上传和下载 一、前言 为了实现ASR的可视化界面,在各个博客中寻觅了一波找找文件上传和下载的例子,没有找到能完整实现这个功能的,有也只是有一部分(菜菜求捞捞),看了甚是烦恼&#xff0…

DBC配置SecOC属性

关联文章:Autosar基础——车载信息安全SecOC 属性定义的规范详细介绍请参考 ①dbc属性定义 ②Vector DBC属性定义规则 文章目录 一、SecOC简介二、DBC文件中的SecOC属性三、配置SecOC属性设置SecOC的属性设置同步报文的属性设置同步请求报文的属性一、SecOC简介 在车载网络中…

怎么利用互联网赚钱,网上赚钱的7种方法

互联网的兴起改变了我们的生活方式,不仅让我们的世界更为便捷,也为我们提供了赚钱的机会。越来越多的人开始通过互联网实现财富梦想。你是否曾想过,如何利用互联网来赚钱呢?今天,我将为大家分享七种赚钱方法&#xff0…

数据分析篇-数据认知分析

一简介 数据认知分析,实际是对数据的整体结构和分布特征进行分析,是对整个数据外在的认识,也是数据分析的第一步。对于数据认知的分析,一般会考虑分散性、位置特性、变量的相关性等,一般会考虑平均数、方差、极差、峰…

算法通过村第十二关-字符串|白银笔记|经典面试题

文章目录 前言1. 反转问题1.1 反转字符串1.2 k个一组反转1.3 仅仅反转字母1.3.1 采用栈实现操作1.3.2 采用双指针实现操作 1.4 反转字符串里面的单词1.4.1 使用语言提供的方法来解决(内置API)1.4.2 如何优雅自己实现上述功能 2. 验证回文串3. 字符串中的第一个唯一字符4. 判断是…

SaaS 电商设计 (二) 全链路解决方案概述和核心业务流程梳理

一.业务目标&技术目标 业务目标:完成多业态,多渠道的数字化运营 自有业务: O2O,B2C,B2B2C,S2B2b 平台业务:POPB2c,POPB2b,POPS2B2b 1.1 自有业务 O2O:全称Online to Offline.泛指的线上线下的业务融合.这种的情况分为两种情况,第一种通过线上的数字化运营引导线上用户线下…

oCPC实践录 | oCPC转化的设计、选择、归因与成本设置(4)

读者们,中秋十一快乐,一篇文章奉上。 在上篇oCPC实践录 | oCPC转化的设计、选择、归因与成本设置(3)文章中我们主要讨论:怎么定义高价值用户,回传高价值用户不一定利益最大化,回传高ROI用户逻辑…

速度轴模拟量控制FB(博途SCL+三菱ST代码)

利用模拟量实现变频器的正反转直接控制具体方法,请参考下面文章链接: 模拟量0-10V信号控制变频器实现正反转速度随动_RXXW_Dor的博客-CSDN博客比例随动专栏有系列文章介绍,大家可以查看相关文章,链接如下:绕线机-排线伺服比例随动功能块(梯形图+SCL代码)_RXXW_Dor的博客…