使用浏览器访问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 greenlet实现原理和使用示例
Sep 24 Python
利用python爬取斗鱼app中照片方法实例
Dec 03 Python
Python基于动态规划算法解决01背包问题实例
Dec 06 Python
Python学习之Anaconda的使用与配置方法
Jan 04 Python
python range()函数取反序遍历sequence的方法
Jun 25 Python
Python实现iOS自动化打包详解步骤
Oct 03 Python
利用Pycharm断点调试Python程序的方法
Nov 29 Python
python 实现读取一个excel多个sheet表并合并的方法
Feb 12 Python
pyinstaller参数介绍以及总结详解
Jul 12 Python
python实现飞机大战项目
Mar 11 Python
Python使用tkinter实现摇骰子小游戏功能的代码
Jul 02 Python
PyCharm2020.3.2安装超详细教程
Feb 08 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
在PHP中养成7个面向对象的好习惯
2010/01/28 PHP
Ubuntu 16.04下安装PHP 7过程详解
2017/03/28 PHP
PHP获取MySQL执行sql语句的查询时间方法
2018/08/21 PHP
ExtJS 2.0 实用简明教程之布局概述
2009/04/29 Javascript
javascript 浏览器检测代码精简版
2010/03/04 Javascript
input按钮的事件处理大全
2010/12/10 Javascript
javascript跨域刷新实现代码
2011/01/01 Javascript
javascript中setTimeout的问题解决方法
2014/05/08 Javascript
JavaScript DOM事件(笔记)
2015/04/08 Javascript
js插件设置innerHTML时在IE8下提示“未知运行时错误”解决方法
2015/04/25 Javascript
js实现搜索框关键字智能匹配代码
2020/03/26 Javascript
JavaScript+html5 canvas制作的圆中圆效果实例
2016/01/27 Javascript
JS中多步骤多分步的StepJump组件实例详解
2016/04/01 Javascript
前端jquery部分很精彩
2016/05/03 Javascript
jQuery实现点击查看大图并以弹框的形式居中
2016/08/08 Javascript
认识less和webstrom的less配置方法
2017/08/02 Javascript
微信小程序实现流程进度的图样式功能
2018/01/16 Javascript
npm 更改默认全局路径以及国内镜像的方法
2018/05/16 Javascript
elementUI多选框反选的实现代码
2019/04/03 Javascript
Vue-cli 移动端布局和动画使用详解
2020/08/10 Javascript
10分钟学会js处理json的常用方法
2020/12/06 Javascript
编写Python脚本批量下载DesktopNexus壁纸的教程
2015/05/06 Python
使用pandas把某一列的字符值转换为数字的实例
2019/01/29 Python
Python实现的ftp服务器功能详解【附源码下载】
2019/06/26 Python
Python 获取 datax 执行结果保存到数据库的方法
2019/07/11 Python
Python多线程threading join和守护线程setDeamon原理详解
2020/03/18 Python
Python DataFrame使用drop_duplicates()函数去重(保留重复值,取重复值)
2020/07/20 Python
新员工欢迎词
2014/01/12 职场文书
销售员个人求职的自我评价
2014/02/10 职场文书
2014年综治宣传月活动总结
2014/04/28 职场文书
优秀共产党员先进事迹材料
2014/05/06 职场文书
2014年度安全工作总结
2014/12/04 职场文书
2015年重阳节慰问信
2015/03/23 职场文书
病假条格式范文
2015/08/17 职场文书
2016大学生国家助学贷款承诺书
2016/03/25 职场文书
python tqdm用法及实例详解
2021/06/16 Python