使用浏览器访问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和MD5实现网站挂马检测程序
Mar 13 Python
Windows系统下安装Python的SSH模块教程
Feb 05 Python
Python实现计算最小编辑距离
Mar 17 Python
Python实现的圆形绘制(画圆)示例
Jan 31 Python
Python爬取个人微信朋友信息操作示例
Aug 03 Python
python 应用之Pycharm 新建模板默认添加编码格式-作者-时间等信息【推荐】
Jun 17 Python
Python中使用__new__实现单例模式并解析
Jun 25 Python
Python pickle模块实现对象序列化
Nov 22 Python
python由已知数组快速生成新数组的方法
Apr 08 Python
零基础学python应该从哪里入手
Aug 11 Python
pycharm永久激活超详细教程
Oct 29 Python
Python中的套接字编程是什么?
Jun 21 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
使用phpQuery采集网页的方法
2013/11/13 PHP
浅析echo(),print(),print_r(),return之间的区别
2013/11/27 PHP
PHP产生不重复随机数的5个方法总结
2014/11/12 PHP
php合并数组中相同元素的方法
2014/11/13 PHP
PHP中SSO Cookie登录分析和实现
2015/11/06 PHP
PHP微信支付开发实例
2016/06/22 PHP
Thinkphp5结合layer弹窗定制操作结果页面
2017/07/07 PHP
Yii 框架控制器创建使用及控制器响应操作示例
2019/10/14 PHP
laravel 查询数据库获取结果实现判断是否为空
2019/10/24 PHP
javascript继承之为什么要继承
2012/11/10 Javascript
jquery 使用简明教程
2014/03/05 Javascript
jQuery的context属性用法实例
2014/12/27 Javascript
利用Javascript裁剪图片并存储的简单实现
2017/03/13 Javascript
bootstrap table插件的分页与checkbox使用详解
2017/07/23 Javascript
本地存储localStorage用法详解
2017/07/31 Javascript
Node.js简单入门前传
2017/08/21 Javascript
JavaScript中的this/call/apply/bind的使用及区别
2020/03/06 Javascript
Python中list列表的一些进阶使用方法介绍
2015/08/15 Python
解决python2.7 查询mysql时出现中文乱码
2016/10/09 Python
Python常用算法学习基础教程
2017/04/13 Python
Python 获得命令行参数的方法(推荐)
2018/01/24 Python
Python图像的增强处理操作示例【基于ImageEnhance类】
2019/01/03 Python
Python使用百度api做人脸对比的方法
2019/08/28 Python
Django实现将一个字典传到前端显示出来
2020/04/03 Python
python导入库的具体方法
2020/06/18 Python
Python3交互式shell ipython3安装及使用详解
2020/07/11 Python
澳大利亚厨房和家用电器购物网站:Bing Lee
2021/01/11 全球购物
参观考察邀请函范文
2014/01/29 职场文书
施工协议书范本
2014/04/22 职场文书
农村优秀教师事迹材料
2014/08/27 职场文书
企业党建工作总结2015
2015/05/26 职场文书
关于企业的执行力标语大全
2020/01/06 职场文书
MongoDB 常用的crud操作语句
2021/06/20 MongoDB
利用python做数据拟合详情
2021/11/17 Python
简单聊聊Golang中defer预计算参数
2022/03/25 Golang
Python中使用Opencv开发停车位计数器功能
2022/04/04 Python