使用浏览器访问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变量不能以数字打头详解
Jul 06 Python
Python连接PostgreSQL数据库的方法
Nov 28 Python
Python系统监控模块psutil功能与经典用法分析
May 24 Python
pandas DataFrame 行列索引及值的获取的方法
Jul 02 Python
Django使用Jinja2模板引擎的示例代码
Aug 09 Python
python爬虫开发之使用python爬虫库requests,urllib与今日头条搜索功能爬取搜索内容实例
Mar 10 Python
解决django 向mysql中写入中文字符出错的问题
May 18 Python
用Python 爬取猫眼电影数据分析《无名之辈》
Jul 24 Python
matplotlib subplot绘制多个子图的方法示例
Jul 28 Python
Python基础之操作MySQL数据库
May 06 Python
Python使用永中文档转换服务
May 06 Python
Sentry的安装、配置、使用教程(Sentry日志手机系统)
Jul 23 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
动易数据转成dedecms的php程序
2007/04/07 PHP
PHP解耦的三重境界(浅谈服务容器)
2017/03/13 PHP
php获取目录下所有文件及目录(多种方法)(推荐)
2019/05/14 PHP
ExtJs grid行 右键菜单的两种方法
2010/06/19 Javascript
js实现点击注册按钮开始读秒倒计时的小例子
2013/05/11 Javascript
jquery cookie实现的简单换肤功能适合小网站
2013/08/25 Javascript
Jquery的Tabs内容轮换效果实现代码,几行搞定
2014/02/12 Javascript
jquery删除ID为sNews的tr元素的内容
2014/04/10 Javascript
Jquery解析json字符串及json数组的方法
2015/05/29 Javascript
小议JavaScript中Generator和Iterator的使用
2015/07/29 Javascript
json格式数据的添加,删除及排序方法
2016/01/21 Javascript
VUEJS 2.0 子组件访问/调用父组件的实例
2018/02/10 Javascript
Cookbook组件形式:优化 Vue 组件的运行时性能
2018/11/25 Javascript
ES6新增的数组知识实例小结
2020/05/23 Javascript
vue 子组件修改data或调用操作
2020/08/07 Javascript
JavaScript代码简化技巧实例解析
2020/09/09 Javascript
[47:04]EG vs RNG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
利用Python将时间或时间间隔转为ISO 8601格式方法示例
2017/09/05 Python
Python实现的人工神经网络算法示例【基于反向传播算法】
2017/11/11 Python
python代码实现ID3决策树算法
2017/12/20 Python
Python使用pandas处理CSV文件的实例讲解
2018/06/22 Python
使用python实现快速搭建简易的FTP服务器
2018/09/12 Python
Python2比较当前图片跟图库哪个图片相似的方法示例
2019/09/28 Python
利用html5的websocket实现websocket聊天室
2013/12/12 HTML / CSS
网站性能延迟加载图像的五种技巧(小结)
2020/08/13 HTML / CSS
欧缇丽美国官网:Caudalie美国
2016/12/31 全球购物
SneakerStudio英国:最佳运动鞋商店
2019/05/22 全球购物
联想阿根廷官方网站:Lenovo Argentina
2019/10/14 全球购物
ECCO俄罗斯官网:北欧丹麦鞋履及皮具品牌
2020/06/26 全球购物
C语言变量的命名规则都有哪些
2013/12/27 面试题
会计应聘求职信范文
2013/12/17 职场文书
入股协议书范本
2014/04/14 职场文书
商品陈列协议书
2014/09/29 职场文书
手把手教你实现PyTorch的MNIST数据集
2021/06/28 Python
Mysql使用全文索引(FullText index)的实例代码
2022/04/03 MySQL
Java 超详细讲解十大排序算法面试无忧
2022/04/08 Java/Android