使用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程序设计入门(4)模块和包
Jun 16 Python
Tensorflow简单验证码识别应用
May 25 Python
python 爬虫 批量获取代理ip的实例代码
May 22 Python
Python 实现子类获取父类的类成员方法
Jan 11 Python
Python3.5内置模块之os模块、sys模块、shutil模块用法实例分析
Apr 27 Python
使用Python和Scribus创建一个RGB立方体的方法
Jul 17 Python
50行Python代码获取高考志愿信息的实现方法
Jul 23 Python
Flask框架单例模式实现方法详解
Jul 31 Python
Python Web框架之Django框架Form组件用法详解
Aug 16 Python
Python生成器传参数及返回值原理解析
Jul 22 Python
python 检测nginx服务邮件报警的脚本
Dec 31 Python
Python  Asyncio模块实现的生产消费者模型的方法
Mar 01 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中strtotime函数用法详解
2014/11/15 PHP
php实现格式化多行文本为Js可用格式
2015/04/15 PHP
一个完整的PHP类包含的七种语法说明
2015/06/04 PHP
PHP基于递归算法解决兔子生兔子问题
2018/05/11 PHP
php中钩子(hook)的原理与简单应用demo示例
2019/09/03 PHP
JS实现点击图片在当前页面放大并可关闭的漂亮效果
2013/10/18 Javascript
javascript中文本框中输入法切换的问题
2013/12/10 Javascript
jquery操作select详解(取值,设置选中)
2014/02/07 Javascript
一个简单的jQuery插件ajaxfileupload.js实现ajax上传文件例子
2014/06/26 Javascript
使用Browserify配合jQuery进行编程的超级指南
2015/07/28 Javascript
一个php+js实时显示时间问题
2015/10/12 Javascript
学习JavaScript设计模式之责任链模式
2016/01/18 Javascript
JavaScript实现图片自动加载的瀑布流效果
2016/04/11 Javascript
详解Vue用axios发送post请求自动set cookie
2017/05/10 Javascript
微信小程序后台解密用户数据实例详解
2017/06/28 Javascript
js实现复制功能(多种方法集合)
2018/01/06 Javascript
微信小程序数字滚动插件使用详解
2018/02/02 Javascript
jQuery实现table表格信息的展开和缩小功能示例
2018/07/21 jQuery
jQuery带控制按钮轮播图插件
2020/07/31 jQuery
Vue前端判断数据对象是否为空的实例
2020/09/02 Javascript
[51:17]Mski vs VGJ.S Supermajor小组赛C组 BO3 第三场 6.3
2018/06/04 DOTA
python记录程序运行时间的三种方法
2017/07/14 Python
python合并同类型excel表格的方法
2018/04/01 Python
详谈python3中用for循环删除列表中元素的坑
2018/04/19 Python
html5 兼容IE6结构的实现代码
2012/05/14 HTML / CSS
毕业生机械建模求职信
2013/10/14 职场文书
金融学专科生自我鉴定
2014/02/21 职场文书
2014五一国际劳动节活动总结范文
2014/04/14 职场文书
团日活动总结怎么写
2014/06/25 职场文书
小学课外阅读总结
2014/07/09 职场文书
个人总结与自我评价
2014/09/18 职场文书
学前班幼儿评语大全
2014/12/29 职场文书
入党宣誓仪式主持词
2015/06/29 职场文书
教师反邪教心得体会
2016/01/15 职场文书
《小小的船》教学反思
2016/02/18 职场文书
2021年最新用于图像处理的Python库总结
2021/06/15 Python