使用浏览器访问python写的服务器程序


Posted in Python onOctober 10, 2019

代码如下所示:

import socket
import re
import multiprocessing
def service_client(client_socket):
  data = client_socket.recv(1024)
  recv_data=data.decode("utf-8")
  print(recv_data)
  #GET /index.html HTTP/1.1
  ret=re.match(r"[^/]+ /([\S]+\s|\s)",recv_data)
  file_n="index.html"
  if ret:
    if ret.group(1)!=" ":
      print(ret.group(1))
      file_n=ret.group(1)
  else:
    print("代码有误!")
  try:
    with open(file_n,"rb") as f:
      content=f.read()
      f.close()
  except Exception as r:
    print(r)
    content = "<h1>file not found<\h1>".encode("utf-8")
  header="HTTP/1.1 200 OK\r\n"
  empty="\r\n"
  response=(header+empty).encode('utf-8')
  client_socket.send(response)
  client_socket.send(content)
  client_socket.close()
  print("client_socket.close()已调用")
def main():
  tcp_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
  tcp_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
  local_addr=("127.0.0.1",7788)
  tcp_socket.bind(local_addr)
  tcp_socket.listen(128)
  while True:
    client_socket, client_addr = tcp_socket.accept()
    p=multiprocessing.Process(target=service_client,args=(client_socket,))
    p.start()
    # p.join()
  tcp_socket.close()
if __name__ == "__main__":
  main()

注意:

1.开始的时候file_n没有先定义,结果就报错:local variable ‘file_n' referenced before assignment

2.正则表达式一定要先验证筛取的内容是否正确。

3.要获取程序同级文件夹中文件夹的文件,相对路基为“文件夹名/文件名”

4.tcp_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) 要加不然容易出现“address already in use"之类的故障

总结

以上所述是小编给大家介绍的使用浏览器访问python写的服务器程序,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python 基础教程之Map使用方法
Jan 17 Python
python中的随机函数小结
Jan 27 Python
python创建文件时去掉非法字符的方法
Oct 31 Python
Linux下Pycharm、Anaconda环境配置及使用踩坑
Dec 19 Python
python将类似json的数据存储到MySQL中的实例
Jul 12 Python
Python pandas自定义函数的使用方法示例
Nov 20 Python
python实现信号时域统计特征提取代码
Feb 26 Python
Python 通过监听端口实现唯一脚本运行方式
May 05 Python
Python-jenkins 获取job构建信息方式
May 12 Python
python装饰器实现对异常代码出现进行自动监控的实现方法
Sep 15 Python
python爬虫selenium模块详解
Mar 30 Python
Python的property属性详细讲解
Apr 11 Python
详解Python time库的使用
Oct 10 #Python
python自动化测试无法启动谷歌浏览器问题
Oct 10 #Python
python批量将excel内容进行翻译写入功能
Oct 10 #Python
Python爬虫爬取Bilibili弹幕过程解析
Oct 10 #Python
安装python及pycharm的教程图解
Oct 10 #Python
Pytorch中的variable, tensor与numpy相互转化的方法
Oct 10 #Python
3行Python代码实现图像照片抠图和换底色的方法
Oct 10 #Python
You might like
星际争霸 Starcraft 秘技补丁
2020/03/14 星际争霸
Apache2中实现多网站域名绑定的实现方法
2011/06/01 PHP
对象失去焦点时自己动提交数据的实现代码
2012/11/06 PHP
PHP实现生成唯一会员卡号
2015/08/24 PHP
jQuery EasyUI中对表格进行编辑的实现代码
2010/06/10 Javascript
javascript实现日期按月份加减
2015/05/15 Javascript
详解ElementUI之表单验证、数据绑定、路由跳转
2017/06/21 Javascript
vue-router配合ElementUI实现导航的实例
2018/02/11 Javascript
JavaScript相等运算符的九条规则示例详解
2019/10/20 Javascript
Element InputNumber 计数器的实现示例
2020/08/03 Javascript
Python牛刀小试密码爆破
2011/02/03 Python
python中字符串变二维数组的实例讲解
2018/04/03 Python
Python 从列表中取值和取索引的方法
2018/12/25 Python
Django框架视图介绍与使用详解
2019/07/18 Python
Django实现将views.py中的数据传递到前端html页面,并展示
2020/03/16 Python
Python matplotlib绘制图形实例(包括点,曲线,注释和箭头)
2020/04/17 Python
基于python计算滚动方差(标准差)talib和pd.rolling函数差异详解
2020/06/08 Python
Pytorch mask-rcnn 实现细节分享
2020/06/24 Python
Python sublime安装及配置过程详解
2020/06/29 Python
CSS3的RGBA中关于整数和百分比值的转换
2015/08/04 HTML / CSS
HTML5引入的新数组TypedArray介绍
2012/12/24 HTML / CSS
解决Firefox下不支持outerHTML问题代码分享
2014/06/04 HTML / CSS
CSS3 画基本图形,圆形、椭圆形、三角形等
2016/09/20 HTML / CSS
澳大利亚天然护肤品、化妆品和健康产品一站式商店:Nourished Life
2018/12/02 全球购物
迎八一活动主题
2014/01/31 职场文书
模具专业毕业生自荐书范文
2014/02/19 职场文书
学生党员的自我评价范文
2014/03/01 职场文书
办公自动化毕业生求职信
2014/03/09 职场文书
餐饮商业计划书范文
2014/04/29 职场文书
祖国在我心中演讲稿500字
2014/05/04 职场文书
工作说明书范文
2014/05/07 职场文书
2014小学生国庆65周年演讲稿
2014/09/21 职场文书
稽核岗位职责范本
2015/04/13 职场文书
工作证明格式范文
2015/06/15 职场文书
个人更名证明
2015/06/23 职场文书
Django 实现jwt认证的示例
2021/04/30 Python