使用浏览器访问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的Twisted框架中使用Deferred对象来管理回调函数
May 25 Python
Windows上使用virtualenv搭建Python+Flask开发环境
Jun 07 Python
Tensorflow 自带可视化Tensorboard使用方法(附项目代码)
Feb 10 Python
Python 利用pydub库操作音频文件的方法
Jan 09 Python
解决django后台样式丢失,css资源加载失败的问题
Jun 11 Python
Python实现K折交叉验证法的方法步骤
Jul 11 Python
python过滤中英文标点符号的实例代码
Jul 15 Python
python中class的定义及使用教程
Sep 18 Python
python 比较字典value的最大值的几种方法
Apr 17 Python
python3的pip路径在哪
Jun 23 Python
python中类与对象之间的关系详解
Dec 16 Python
python中的装饰器该如何使用
Jun 18 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
IIS6.0+PHP5.x+MySQL5.x+Zend3.0x+GD+phpMyAdmin2.8x通用安装实例(已经完成)
2006/12/06 PHP
php feof用来识别文件末尾字符的方法
2010/08/01 PHP
php格式化日期实例分析
2014/11/12 PHP
如何把php5.3版本升级到php5.4或者php5.5
2015/07/31 PHP
PHP代码优化技巧小结
2015/09/29 PHP
js实现新浪微博首页效果
2015/10/16 Javascript
学习使用AngularJS文件上传控件
2016/02/16 Javascript
利用jQuery实现CheckBox全选/全不选/反选的简单代码
2016/05/31 Javascript
一种Javascript解释ajax返回的json的好方法(推荐)
2016/06/02 Javascript
jQuery实现的事件绑定功能基本示例
2017/10/11 jQuery
利用vue + koa2 + mockjs模拟数据的方法教程
2017/11/22 Javascript
JS实现字符串去重及数组去重的方法示例
2018/04/21 Javascript
使用electron实现百度网盘悬浮窗口功能的示例代码
2018/10/24 Javascript
微信小程序使用for循环动态渲染页面操作示例
2018/12/25 Javascript
angular4自定义组件非input元素实现ngModel双向数据绑定的方法
2018/12/28 Javascript
JavaScript动态创建二维数组的方法示例
2019/02/01 Javascript
Vue.js 无限滚动列表性能优化方案
2019/12/02 Javascript
JS实现横向轮播图(初级版)
2020/06/24 Javascript
基于JavaScript实现大文件上传后端代码实例
2020/08/18 Javascript
[57:29]Alliance vs KG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/17 DOTA
Eclipse中Python开发环境搭建简单教程
2016/03/23 Python
python的继承知识点总结
2018/12/10 Python
Python-接口开发入门解析
2019/08/01 Python
Python 代码调试技巧示例代码
2020/08/11 Python
HTML5 Web存储方式的localStorage和sessionStorage进行数据本地存储案例应用
2012/12/09 HTML / CSS
新西兰便宜隐形眼镜购买网站:QUICKLENS New Zealand
2019/03/02 全球购物
俄罗斯购买剧院和演唱会门票网站:Parter.ru
2019/11/09 全球购物
linux面试题参考答案(5)
2016/11/05 面试题
生产经理的自我评价分享
2013/11/07 职场文书
工业学校毕业生自荐信范文
2014/01/03 职场文书
水果连锁超市创业计划书
2014/01/24 职场文书
英语教研活动总结
2014/07/02 职场文书
党委班子剖析材料
2014/08/21 职场文书
工作简历的自我评价
2019/05/16 职场文书
2019年工作总结范文
2019/05/21 职场文书
MySQL三种方式实现递归查询
2022/04/18 MySQL