使用浏览器访问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选择排序算法的实现代码
Nov 21 Python
Python实现GUI学生信息管理系统
Apr 05 Python
Python3匿名函数用法示例
Jul 25 Python
python中scikit-learn机器代码实例
Aug 05 Python
使用python实现unix2dos和dos2unix命令的例子
Aug 13 Python
Django如何使用第三方服务发送电子邮件
Aug 14 Python
使用Python3 poplib模块删除服务器多天前的邮件实现代码
Apr 24 Python
python报错: 'list' object has no attribute 'shape'的解决
Jul 15 Python
Python爬虫设置Cookie解决网站拦截并爬取蚂蚁短租的问题
Feb 22 Python
python常量折叠基础知识点讲解
Feb 28 Python
一篇文章弄懂Python中的内建函数
Aug 07 Python
Python学习之异常中的finally使用详解
Mar 16 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
解析php5配置使用pdo
2013/07/03 PHP
Yii Framework框架开发微信公众平台示例
2020/04/26 PHP
JS打开新窗口的2种方式
2013/04/18 Javascript
jquery中的事件处理详细介绍
2013/06/24 Javascript
javascript调试过程中找不到哪里出错的可能原因
2013/12/16 Javascript
JQuery节点元素属性操作方法
2015/06/11 Javascript
你不需要jQuery(三) 新AJAX方法fetch()
2016/06/14 Javascript
基于jQuery实现歌词滚动版音乐播放器的代码
2016/09/17 Javascript
详解webpack 配合babel 将es6转成es5 超简单实例
2017/05/02 Javascript
js单页hash路由原理与应用实战详解
2017/08/14 Javascript
详解react阻止无效重渲染的多种方式
2018/12/11 Javascript
使用gulp构建前端自动化的方法示例
2018/12/25 Javascript
electron-vue开发环境内存泄漏问题汇总
2019/10/10 Javascript
vue中添加与删除关键字搜索功能
2019/10/12 Javascript
如何正确理解vue中的key详解
2019/11/02 Javascript
Python3实现生成随机密码的方法
2014/08/23 Python
Python编程实现微信企业号文本消息推送功能示例
2017/08/21 Python
下载python中Crypto库报错:ModuleNotFoundError: No module named ‘Crypto’的解决
2018/04/23 Python
在Python中居然可以定义两个同名通参数的函数
2019/01/31 Python
Python实现的统计文章单词次数功能示例
2019/07/08 Python
使用Pyinstaller转换.py文件为.exe可执行程序过程详解
2019/08/06 Python
Python人工智能之路 之PyAudio 实现录音 自动化交互实现问答
2019/08/13 Python
Python字符串的修改方法实例
2019/12/19 Python
使用python求斐波那契数列中第n个数的值示例代码
2020/07/26 Python
css3闪亮进度条效果实现思路及代码
2013/04/17 HTML / CSS
一加手机美国官方网站:OnePlus美国
2019/09/19 全球购物
Currentbody美国/加拿大:美容仪专家
2020/03/09 全球购物
生产主管岗位职责
2013/11/10 职场文书
党校个人自我鉴定范文
2014/03/28 职场文书
《埃及的金字塔》教学反思
2014/04/07 职场文书
我们的节日清明节活动总结
2014/04/30 职场文书
2015元旦晚会主持人开场白+结束语
2014/12/14 职场文书
2015年医院科室工作总结范文
2015/05/26 职场文书
浅谈Python数学建模之数据导入
2021/06/23 Python
Java基于字符界面的简易收银台
2021/06/26 Java/Android
Nginx配置文件详解以及优化建议指南
2021/09/15 Servers