使用浏览器访问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实现字符串和日期相互转换的方法
May 13 Python
Python时间模块datetime、time、calendar的使用方法
Jan 13 Python
深入理解Python中装饰器的用法
Jun 28 Python
python正则实现计算器功能
Dec 14 Python
选择python进行数据分析的理由和优势
Jun 25 Python
Django中多种重定向方法使用详解
Jul 17 Python
python实现抠图给证件照换背景源码
Aug 20 Python
django配置app中的静态文件步骤
Mar 27 Python
Python新手学习raise用法
Jun 03 Python
如何教少儿学习Python编程
Jul 10 Python
Java爬虫技术框架之Heritrix框架详解
Jul 22 Python
python os.rename实例用法详解
Dec 06 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 strtok()函数的优点分析
2010/03/02 PHP
地址栏传递中文参数乱码在js里用escape转码
2013/08/28 Javascript
js中数组排序sort方法的原理分析
2014/11/20 Javascript
javascript中定义类的方法汇总
2014/12/28 Javascript
jQuery qrcode生成二维码的方法
2016/04/03 Javascript
终于实现了!精彩的jquery弹幕效果
2016/07/18 Javascript
详解Vue监听数据变化原理
2017/03/08 Javascript
微信小程序使用input组件实现密码框功能【附源码下载】
2017/12/11 Javascript
JS实现的判断方法、变量是否存在功能示例
2020/03/28 Javascript
详解Node.js 中使用 ECDSA 签名遇到的坑
2018/11/26 Javascript
原生JS检测CSS3动画是否结束的方法详解
2019/01/27 Javascript
微信小程序封装自定义弹窗的实现代码
2019/05/08 Javascript
layui table 复选框跳页后再回来保持原来选中的状态示例
2019/10/26 Javascript
微信小程序实现抖音播放效果的实例代码
2020/04/11 Javascript
vue实现在进行增删改操作后刷新页面
2020/08/05 Javascript
JavaScript中的Proxy对象
2020/11/27 Javascript
Vue实现一种简单的无限循环滚动动画的示例
2021/01/10 Vue.js
[01:47]2018年度DOTA2最佳教练-完美盛典
2018/12/16 DOTA
Python基于Tkinter实现的记事本实例
2015/06/17 Python
Python开发之快速搭建自动回复微信公众号功能
2016/04/22 Python
通过python爬虫赚钱的方法
2019/01/29 Python
使用PyQtGraph绘制精美的股票行情K线图的示例代码
2019/03/14 Python
使用Python opencv实现视频与图片的相互转换
2019/07/08 Python
django框架forms组件用法实例详解
2019/12/10 Python
Python模块future用法原理详解
2020/01/20 Python
浅谈pytorch池化maxpool2D注意事项
2020/02/18 Python
python 计算概率密度、累计分布、逆函数的例子
2020/02/25 Python
python入门之井字棋小游戏
2020/03/05 Python
Python之Sklearn使用入门教程
2021/02/19 Python
证婚人搞笑证婚词
2014/01/10 职场文书
cf战队收人口号
2014/06/21 职场文书
大学生自荐信范文
2015/03/05 职场文书
环保证明
2015/06/23 职场文书
贴吧吧主申请感言
2015/08/03 职场文书
总结一些Java常用的加密算法
2021/06/11 Java/Android
如何理解python接口自动化之logging日志模块
2021/06/15 Python