使用浏览器访问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中的reduce内建函数使用方法指南
Aug 31 Python
Python字符串和字典相关操作的实例详解
Sep 23 Python
Python爬虫包BeautifulSoup学习实例(五)
Jun 17 Python
python 将json数据提取转化为txt的方法
Oct 26 Python
python将txt文件读入为np.array的方法
Oct 30 Python
10 分钟快速入门 Python3的教程
Jan 29 Python
python实现文本进度条 程序进度条 加载进度条 单行刷新功能
Jul 03 Python
python小程序实现刷票功能详解
Jul 17 Python
Django restframework 框架认证、权限、限流用法示例
Dec 21 Python
django执行数据库查询之后实现返回的结果集转json
Mar 31 Python
给keras层命名,并提取中间层输出值,保存到文档的实例
May 23 Python
Python+Kepler.gl轻松制作酷炫路径动画的实现示例
Jun 02 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
Windows 下的 PHP-PEAR 安装方法
2010/11/20 PHP
php调用C代码的实现方法
2014/03/11 PHP
ThinkPHP 模板substr的截取字符串函数详解
2017/01/09 PHP
php实现构建排除当前元素的乘积数组方法
2018/10/06 PHP
php中Swoole的热更新实现代码实例
2021/03/04 PHP
jQuery 浮动广告实现代码
2008/12/25 Javascript
jQuery中的bind绑定事件与文本框改变事件的临时解决方法
2010/08/13 Javascript
JavaScript 验证码的实例代码(附效果图)
2013/03/22 Javascript
javascript得到当前页的来路即前一页地址的方法
2014/02/18 Javascript
Extjs 4.x 得到form CheckBox 复选框的值
2014/05/04 Javascript
使用jquery解析XML的方法
2014/09/05 Javascript
浅析Bootstrap验证控件的使用
2016/06/23 Javascript
JavaScript中ES6字符串扩展方法
2016/08/26 Javascript
微信小程序 按钮滑动的实现方法
2017/09/27 Javascript
在Mac下彻底卸载node和npm的方法
2018/05/16 Javascript
[59:15]EG vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.26
2018/08/29 DOTA
[01:06:59]完美世界DOTA2联赛PWL S2 Magma vs FTD 第一场 11.29
2020/12/02 DOTA
Python3实现将文件归档到zip文件及从zip文件中读取数据的方法
2015/05/22 Python
Python爬虫使用脚本登录Github并查看信息
2018/07/16 Python
python3.6.3安装图文教程 TensorFlow安装配置方法
2020/06/24 Python
python中时间、日期、时间戳的转换的实现方法
2019/07/06 Python
python:按行读入,排序然后输出的方法
2019/07/20 Python
Python 面向对象之类class和对象基本用法示例
2020/02/02 Python
python匿名函数lambda原理及实例解析
2020/02/07 Python
python编程进阶之异常处理用法实例分析
2020/02/21 Python
Django 自定义404 500等错误页面的实现
2020/03/08 Python
python将字典内容写入json文件的实例代码
2020/08/12 Python
golang/python实现归并排序实例代码
2020/08/30 Python
Foot Locker意大利官网:全球领先的运动鞋和服装零售商
2017/05/30 全球购物
巴西男士个人护理产品商店:SHOP4MEN
2017/08/07 全球购物
应届生求职自荐信
2014/07/04 职场文书
2014年平安建设工作总结
2014/11/19 职场文书
2015年采购员工作总结
2015/04/27 职场文书
2015年医院药剂科工作总结
2015/05/04 职场文书
2015年社区消防安全工作总结
2015/10/14 职场文书
优秀员工演讲稿
2019/06/21 职场文书