使用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 相关文章推荐
使用PYTHON接收多播数据的代码
Mar 01 Python
python动态加载包的方法小结
Apr 18 Python
Python程序中的观察者模式结构编写示例
May 27 Python
深入理解python对json的操作总结
Jan 05 Python
tensorflow1.0学习之模型的保存与恢复(Saver)
Apr 23 Python
python找出一个列表中相同元素的多个索引实例
Jun 11 Python
Django中使用CORS实现跨域请求过程解析
Aug 05 Python
python实现密码验证合格程序的思路详解
Jun 01 Python
浅谈Python中的继承
Jun 19 Python
Python 测试框架unittest和pytest的优劣
Sep 26 Python
5款实用的python 工具推荐
Oct 13 Python
python单向链表实例详解
May 25 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面向对象全攻略 (五) 封装性
2009/09/30 PHP
PHP实现采集抓取淘宝网单个商品信息
2015/01/08 PHP
php类的自动加载操作实例详解
2016/09/28 PHP
php5.3后静态绑定用法详解
2016/11/11 PHP
Yii2框架redis基本应用示例
2018/07/13 PHP
PHP中define() 与 const定义常量的区别详解
2019/06/25 PHP
ie 调试javascript的工具
2009/04/29 Javascript
Javascript和Ajax中文乱码吐血版解决方案
2009/12/21 Javascript
JS按字节截取字符长度实例
2013/11/20 Javascript
网站内容禁止复制和粘贴、另存为的js代码
2014/02/26 Javascript
JS辨别访问浏览器判断是android还是ios系统
2014/08/19 Javascript
Angular限制input框输入金额(是小数的话只保留两位小数点)
2017/07/13 Javascript
分析javascript中9 个常见错误阻碍你进步
2017/09/18 Javascript
angular ng-model 无法获取值的处理方法
2018/10/02 Javascript
vue中eslintrc.js配置最详细介绍
2018/12/21 Javascript
[04:36]DOTA2国际邀请赛 ti3精彩集锦
2013/08/19 DOTA
python每次处理固定个数的字符的方法总结
2013/01/29 Python
Python正则表达式和re库知识点总结
2019/02/11 Python
利用python实现在微信群刷屏的方法
2019/02/21 Python
Python3的高阶函数map,reduce,filter的示例详解
2019/07/23 Python
Python logging设置和logger解析
2019/08/28 Python
10个python3常用排序算法详细说明与实例(快速排序,冒泡排序,桶排序,基数排序,堆排序,希尔排序,归并排序,计数排序)
2020/03/17 Python
解决在keras中使用model.save()函数保存模型失败的问题
2020/05/21 Python
Python while true实现爬虫定时任务
2020/06/08 Python
Keras在训练期间可视化训练误差和测试误差实例
2020/06/16 Python
python右对齐的实例方法
2020/07/05 Python
Python基于正则表达式实现计算器功能
2020/07/13 Python
同学会邀请书大全
2014/01/12 职场文书
自荐信的基本格式
2014/02/22 职场文书
幼儿园社区活动总结
2014/07/07 职场文书
药店促销活动策划方案
2014/08/24 职场文书
暑假学习心得体会
2014/09/02 职场文书
优秀护士事迹材料
2014/12/25 职场文书
五年级小学生评语
2014/12/26 职场文书
浅谈python中的多态
2021/06/15 Python
关于React Native使用axios进行网络请求的方法
2021/08/02 Javascript