使用python 写一个静态服务(实战)


Posted in Python onJune 28, 2019

师父布置的任务,让我写一个服务练练手,搞清楚socket的原理和过程后跑了一个小demo,很有成就感,代码内容也比较清晰易懂,很有教育启发意义。

代码

# coding:utf-8
import socket
from multiprocessing import Process

HTML_ROOT_DIR = ""


def handle_client(client_socket):
  """处理客户端请求"""
  # 获取客户端请求数据
  request_data = client_socket.recv(1024)
  print("request data:", request_data)

  # 构造响应数据
  response_start_line = "HTTP/1.1 200 OK\r\n"
  response_headers = "Server: My server\r\n"
  response_body = "hello itcast"
  response = response_start_line + response_headers + "\r\n" + response_body
  print("response data:", response)

  # 向客户端返回响应数据
  client_socket.send(bytes(response, "utf-8"))

  # 关闭客户端连接
  client_socket.close()


if __name__=="__main__":
  server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  server_socket.bind(("", 8000))
  server_socket.listen(120)

  while True:
    client_socket, client_address = server_socket.accept()
    # print("[%s, %s]用户连接上了"%client_addrest[0],client_address[1])
    print("[%s, %s]用户连接上了" % client_address)
    handle_client_process = Process(target=handle_client, args=(client_socket,))
    handle_client_process.start()
    client_socket.close()

运行后在浏览器输入:127.0.0.1:8000

http页面显示如下:

使用python 写一个静态服务(实战)

控制台输出:

[127.0.0.1, 50066]用户连接上了
request data: b'GET / HTTP/1.1\r\nHost: 127.0.0.1:8000\r\nUpgrade-Insecure-Requests: 1\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1) AppleWebKit/604.3.5 (KHTML, like Gecko) Version/11.0.1 Safari/604.3.5\r\nAccept-Language: zh-cn\r\nAccept-Encoding: gzip, deflate\r\nConnection: keep-alive\r\n\r\n'
response data: HTTP/1.1 200 OK
Server: My server

hello itcast
[127.0.0.1, 50067]用户连接上了
request data: b'GET /favicon.ico HTTP/1.1\r\nHost: 127.0.0.1:8000\r\nConnection: keep-alive\r\nAccept: */*\r\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1) AppleWebKit/604.3.5 (KHTML, like Gecko) Version/11.0.1 Safari/604.3.5\r\nAccept-Language: zh-cn\r\nReferer: http://127.0.0.1:8000/\r\nAccept-Encoding: gzip, deflate\r\n\r\n'
response data: HTTP/1.1 200 OK
Server: My server

hello itcast

以上这篇使用python 写一个静态服务(实战)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Django1.3添加app提示模块不存在的解决方法
Aug 26 Python
python刷投票的脚本实现代码
Nov 08 Python
python入门之语句(if语句、while语句、for语句)
Jan 19 Python
Python实现的数据结构与算法之双端队列详解
Apr 22 Python
浅析python中的分片与截断序列
Aug 09 Python
Python实现采用进度条实时显示处理进度的方法
Dec 19 Python
Python实现的基于优先等级分配糖果问题算法示例
Apr 25 Python
Python3 venv搭建轻量级虚拟环境的步骤(图文)
Aug 09 Python
Django Xadmin多对多字段过滤实例
Apr 07 Python
IDLE下Python文件编辑和运行操作
Apr 25 Python
python 数据库查询返回list或tuple实例
May 15 Python
Python如何避免文件同名产生覆盖
Jun 09 Python
python适合人工智能的理由和优势
Jun 28 #Python
python画图的函数用法以及技巧
Jun 28 #Python
使用python爬取微博数据打造一颗“心”
Jun 28 #Python
详解python和matlab的优势与区别
Jun 28 #Python
python中while和for的区别总结
Jun 28 #Python
python脚本当作Linux中的服务启动实现方法
Jun 28 #Python
如何用Python制作微信好友个性签名词云图
Jun 28 #Python
You might like
在PHP中检查PHP文件是否有语法错误的方法
2009/12/23 PHP
关于php 高并发解决的一点思路
2017/04/16 PHP
使用一个for循环将N*N的二维数组的所有值置1实现方法
2017/05/29 PHP
可以显示单图片,多图片ajax请求的ThickBox3.1类下载
2007/12/23 Javascript
jquery子元素过滤选择器使用示例
2013/06/24 Javascript
js实现广告漂浮效果的小例子
2013/07/02 Javascript
JS this作用域以及GET传输值过长的问题解决方法
2013/08/06 Javascript
YUI模块开发原理详解
2013/11/18 Javascript
javascript图片相似度算法实现 js实现直方图和向量算法
2014/01/14 Javascript
IE6中链接A的href为javascript协议时不在当前页面跳转
2014/06/05 Javascript
jQuery+Ajax+PHP+Mysql实现分页显示数据实例讲解
2015/09/27 Javascript
本地Bootstrap文件字体图标引入却无法显示问题的解决方法
2020/04/18 Javascript
Vue 父子组件数据传递的四种方式( inheritAttrs + $attrs + $listeners)
2018/05/04 Javascript
微信小程序利用Canvas绘制图片和竖排文字详解
2019/06/25 Javascript
Vue解决移动端弹窗滚动穿透问题
2020/12/15 Vue.js
OpenCV2从摄像头获取帧并写入视频文件的方法
2018/08/03 Python
解决nohup执行python程序log文件写入不及时的问题
2019/01/14 Python
python利用跳板机ssh远程连接redis的方法
2019/02/19 Python
pytorch 自定义参数不更新方式
2020/01/06 Python
Django 批量插入数据的实现方法
2020/01/12 Python
python代码实现将列表中重复元素之间的内容全部滤除
2020/05/22 Python
CSS3+Sprite实现僵尸行走动画特效源码
2016/01/27 HTML / CSS
联想马亚西亚官方网站:Lenovo Malaysia
2018/09/19 全球购物
迎八一活动主题
2014/01/31 职场文书
中学校庆方案
2014/03/17 职场文书
环境工程专业毕业生求职信
2014/09/30 职场文书
优秀英文求职信范文
2015/03/19 职场文书
幼儿园开学家长寄语(2015秋季)
2015/05/27 职场文书
运动会运动员赞词
2015/07/22 职场文书
初中班主任教育随笔
2015/08/15 职场文书
《曾国藩家书》读后感——读家书,立家风
2019/08/21 职场文书
2019年二手房买卖合同范本
2019/10/14 职场文书
如何正确理解python装饰器
2021/06/15 Python
Python Pygame实战之塔防游戏的实现
2022/03/17 Python
详解Mysql事务并发(脏读、不可重复读、幻读)
2022/04/29 MySQL
微信小程序实现轮播图指示器
2022/06/25 Javascript