使用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实现的石头剪子布代码分享
Aug 22 Python
python去除文件中空格、Tab及回车的方法
Apr 12 Python
Python中协程用法代码详解
Feb 10 Python
详解Python中where()函数的用法
Mar 27 Python
Python实现一个服务器监听多个客户端请求
Apr 12 Python
Python结合ImageMagick实现多张图片合并为一个pdf文件的方法
Apr 24 Python
Python微医挂号网医生数据抓取
Jan 24 Python
Python用字典构建多级菜单功能
Jul 11 Python
django自定义非主键自增字段类型详解(auto increment field)
Mar 30 Python
python输出国际象棋棋盘的实例分享
Nov 26 Python
pytest进阶教程之fixture函数详解
Mar 29 Python
FP-growth算法发现频繁项集——发现频繁项集
Jun 24 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的文件操作与算法实现的面试题示例
2015/08/10 PHP
CI框架实现cookie登陆的方法详解
2016/05/18 PHP
php实现等比例压缩图片
2018/07/26 PHP
stripos函数知识点实例分享
2019/02/11 PHP
跟随鼠标旋转的文字
2006/11/30 Javascript
关于文本框的一些限制控制总结~~
2010/04/15 Javascript
Jquery 插件开发笔记整理
2011/01/17 Javascript
js实现的切换面板实例代码
2013/06/17 Javascript
jquery 追加tr和删除tr示例代码
2013/09/12 Javascript
javascript中为某个元素指定事件的三种方式
2014/08/07 Javascript
JS小游戏之宇宙战机源码详解
2014/09/25 Javascript
使用jQuery实现返回顶部
2015/01/26 Javascript
jQuery中的ready函数与window.onload谁先执行
2016/06/21 Javascript
BootStrap实现树形目录组件代码详解
2016/06/21 Javascript
微信小程序 动态绑定数据及动态事件处理
2017/03/14 Javascript
AngularJS实现的获取焦点及失去焦点时的表单验证功能示例
2017/10/25 Javascript
vue安装和使用scss及sass与scss的区别详解
2018/10/15 Javascript
详解VUE调用本地json的使用方法
2019/05/15 Javascript
详解Selenium+PhantomJS+python简单实现爬虫的功能
2019/07/14 Python
Flask框架学习笔记之使用Flask实现表单开发详解
2019/08/12 Python
python实现淘宝购物系统
2019/10/25 Python
Python文本文件的合并操作方法代码实例
2020/03/31 Python
HTML5 Canvas实现平移/放缩/旋转deom示例(附截图)
2013/07/04 HTML / CSS
canvas实现二维码和图片合成的示例代码
2018/08/01 HTML / CSS
AT&T Wireless:手机、无限数据计划和配件
2018/06/03 全球购物
美国花园雕像和家居装饰网上商店:Design Toscano
2019/03/09 全球购物
施工质量承诺书范文
2014/05/30 职场文书
本科毕业生求职信
2014/06/15 职场文书
霸气队列口号
2014/06/18 职场文书
房屋租赁授权委托书范本
2014/09/20 职场文书
超搞笑婚前保证书
2015/05/08 职场文书
2015年学校财务工作总结
2015/05/19 职场文书
2015年安全生产月工作总结
2015/07/27 职场文书
《学会生存》读后感3篇
2019/12/09 职场文书
一篇带你入门Java垃圾回收器
2021/06/16 Java/Android
CSS Transition通过改变Height实现展开收起元素
2021/08/07 HTML / CSS