使用浏览器访问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实现文件路径和url相互转换的方法
Jul 06 Python
python批量提取word内信息
Aug 09 Python
Python第三方库xlrd/xlwt的安装与读写Excel表格
Jan 21 Python
Python+Wordpress制作小说站
Apr 14 Python
Python使用文件锁实现进程间同步功能【基于fcntl模块】
Oct 16 Python
Python将一个CSV文件里的数据追加到另一个CSV文件的方法
Jul 04 Python
Python+OpenCV目标跟踪实现基本的运动检测
Jul 10 Python
python字符串替换re.sub()实例解析
Feb 09 Python
Python socket处理client连接过程解析
Mar 18 Python
在PyTorch中使用标签平滑正则化的问题
Apr 03 Python
python等待10秒执行下一命令的方法
Jul 19 Python
python从ftp获取文件并下载到本地
Dec 05 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
弄了个检测传输的参数是否为数字的Function
2006/12/06 PHP
搭建基于Docker的PHP开发环境的详细教程
2015/07/01 PHP
ThinkPHP进程计数类Process用法实例详解
2015/09/25 PHP
php限制文件下载速度的代码
2015/10/20 PHP
yii2中使用Active Record模式的方法
2016/01/09 PHP
PHP文件系统管理(实例讲解)
2017/09/19 PHP
thinkphp5.0自定义验证规则使用方法
2017/11/16 PHP
JS JavaScript获取Url参数,src属性参数
2021/03/09 Javascript
Javascript获取当前日期的农历日期代码
2014/10/08 Javascript
javascript实现rgb颜色转换成16进制格式
2015/07/10 Javascript
jQuery实现图片上传和裁剪插件Croppie
2015/11/29 Javascript
jquery mobile 移动web(5)
2015/12/20 Javascript
JS DOMReady事件的六种实现方法总结
2016/11/23 Javascript
vue-hook-form使用详解
2017/04/07 Javascript
jQuery 表单序列化实例代码
2017/06/11 jQuery
webpack配置sass模块的加载的方法
2017/07/30 Javascript
详解vue-cli3 中跨域解决方案
2019/04/10 Javascript
详解JavaScript中的坐标和距离
2019/05/27 Javascript
JavaScript进阶(四)原型与原型链用法实例分析
2020/05/09 Javascript
Jquery高级应用Deferred对象原理及使用实例
2020/05/28 jQuery
为Python的Tornado框架配置使用Jinja2模板引擎的方法
2016/06/30 Python
Python+Selenium自动化实现分页(pagination)处理
2017/03/31 Python
python+splinter自动刷新抢票功能
2018/09/25 Python
Python Pickle 实现在同一个文件中序列化多个对象
2019/12/30 Python
对Pytorch中Tensor的各种池化操作解析
2020/01/03 Python
Python Django搭建网站流程图解
2020/06/13 Python
多视角3D逼真HTML5水波动画
2016/03/03 HTML / CSS
Python面试题:Python里面如何生成随机数
2015/03/12 面试题
简短的公司员工自我评价分享
2013/11/13 职场文书
护理实习自我鉴定
2013/12/14 职场文书
《小猪家的桃花树》教学反思
2014/04/11 职场文书
忠诚教育心得体会
2014/09/03 职场文书
教师群众路线教育实践活动个人对照检查材料
2014/11/04 职场文书
当幸福来敲门观后感
2015/06/01 职场文书
初中地理教学反思
2016/02/19 职场文书
解决Redis启动警告问题
2022/02/24 Redis