使用浏览器访问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中的装饰器详解
Apr 13 Python
详解Python的Django框架中的通用视图
May 04 Python
bpython 功能强大的Python shell
Feb 16 Python
Python实现定时精度可调节的定时器
Apr 15 Python
Python 输入一个数字判断成绩分数等级的方法
Nov 15 Python
pycharm debug功能实现跳到循环末尾的方法
Nov 29 Python
python爬虫中多线程的使用详解
Sep 23 Python
Python帮你微信头像任意添加装饰别再@微信官方了
Sep 25 Python
python批量将excel内容进行翻译写入功能
Oct 10 Python
基于python实现把图片转换成素描
Nov 13 Python
Python使用socket_TCP实现小文件下载功能
Oct 09 Python
 Python 中 logging 模块使用详情
Mar 03 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
PHP中使用mktime获取时间戳的一个黑色幽默分析
2012/05/31 PHP
php生成随机字符串可指定纯数字、纯字母或者混合的
2014/04/18 PHP
php微信开发之关注事件
2018/06/14 PHP
IE8 引入跨站数据获取功能说明
2008/07/22 Javascript
jQuery下的几个你可能没用过的功能
2010/08/29 Javascript
windows系统下简单nodejs安装及环境配置
2013/01/08 NodeJs
js+html5实现可在手机上玩的拼图游戏
2015/07/17 Javascript
复杂的javascript窗口分帧解析
2016/02/19 Javascript
JS中对Cookie的操作详解
2016/08/05 Javascript
jQuery实现拖动剪裁图片作为头像
2016/12/28 Javascript
bmob js-sdk 在vue中的使用教程
2018/01/21 Javascript
轻量级JS Cookie插件js-cookie的使用方法
2018/03/22 Javascript
Nodejs 和 Electron ubuntu下快速安装过程
2018/05/04 NodeJs
JS高阶函数原理与用法实例分析
2019/01/15 Javascript
微信小程序webview 脚手架使用详解
2019/07/22 Javascript
聊聊鉴权那些事(推荐)
2019/08/22 Javascript
使用layer弹窗提交表单时判断表单是否输入为空的例子
2019/09/26 Javascript
jQuery使用jsonp实现百度搜索的示例代码
2020/07/08 jQuery
在Python中使用dict和set方法的教程
2015/04/27 Python
python网络编程之数据传输UDP实例分析
2015/05/20 Python
Python 读取串口数据,动态绘图的示例
2019/07/02 Python
Python协程操作之gevent(yield阻塞,greenlet),协程实现多任务(有规律的交替协作执行)用法详解
2019/10/14 Python
详解如何用canvas画一个微笑的表情
2019/03/14 HTML / CSS
英国领先的男装设计师服装购物网站:Mainline Menswear
2018/02/04 全球购物
Lacoste(法国鳄鱼)加拿大官网:以标志性的POLO衫而闻名
2019/05/15 全球购物
日本最大化妆品和美容产品的综合口碑网站:cosme shopping
2019/08/28 全球购物
网络维护中文求职信
2014/01/03 职场文书
大学共青团员个人自我评价
2014/04/16 职场文书
企业爱岗敬业演讲稿
2014/09/04 职场文书
推广普通话共筑中国梦演讲稿
2014/09/21 职场文书
2014年社区党建工作汇报材料
2014/11/02 职场文书
总经理助理岗位职责
2015/01/31 职场文书
祝福语集锦:朋友新店开业祝福语
2019/12/10 职场文书
jquery插件实现图片悬浮
2021/04/16 jQuery
anaconda python3.8安装后降级
2021/06/11 Python
室外天线与收音机天线杆接合方法
2022/04/05 无线电