文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

如何用python创建最简单的服务器

2023-06-02 01:40

关注

今天就跟大家聊聊有关如何用python创建最简单的服务器,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

  本文使用socket实现,

  使用python访问

如何用python创建最简单的服务器
如何用python创建最简单的服务器

  下面,我们开始讲解实现方法

  import socket

  # 1. 创建套接字并设置服务器释放

  web_server= socket.socket(socket.AF_INET, socket.SOCK_STREAM,socket.IPPROTO_TCP)

  .web_server.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)

  # 2. 绑定端口

  web_server.bind(("127.0.0.1", 26332))

  # 3. 监听套接字

  web_serve.listen(128)

  第一步:我们首先创建一个套接字,第一行,套接字的参数有3个,这里不具体讲解,只要将代码复制过去就可以了。第二行涉及到TCP3次握手和4次挥手,只要知道,当我们服务器主动发起关闭客户端连接时,或者意外中断后,端口不会被占用。

  第二步:绑定端口,为什么要绑定端口,因为你只有绑定端口别人才能知道如何找到你。

  如果是在本地运行,就绑定127.0.0.1,端口号可以随意输入

  如果是在远程服务器,就输入远程服务器的IP地址。同时把安全规则把对应端口开放。

  第三步:我们绑定端口以后,就要监听端口,如果不监听端口,就无法知道有人连接你了。

  while True:

  web_client,client_ip=web_serve。accept()

  第四步:当我们绑定好端口以后,我们就要开始等待客户端连接。如果客户端连接,它才会进行下一步,如果没有连接,它会阻塞在这一步。

  import multiprocessing

  process=multiprocessing.Process(target=web_requests,args=(web_client,))

  process.start()

  web_client.close()郑州治疗妇科的医院 http://www.120kdfk.com/

  第五步:当我们接收到客户端连接后,我们就要为这个客户端创建一个进程,去为它服务,因为进程是复制一份web_client,所以我们就可以把程序所指向的web_client给关了(进程所指向的由进程关闭),循环等待下一个客户端连接

  def web_requests(web_client):

  web_requests=web_client.recv(1024).decode("utf-8")

  定义一个进程函数,然后接收客户端发来的数据,web_client.recv(1024)中recv(1024)是接收客户端发来的数据,.decode(“utf-8”)是对客户端发来的数据进行解码

  import re

  web_request=web_requests.splitlines()[0] #将收到的数据转为列表,取出第一行参数:GET /s?kw=hello,word HTTP/1.1

  request_kw=re.findall("kw=(.*?).HTTP",web_request) [0] #取出收到的参数

  我们在爬取百度的时候,经常会用到wd=,&pn=,所以在这里,我们也使用传参的方式kw=,让服务器收到我们的请求,并返回传入的参数值,当我们收到请求时,我门就要开始返回数据

  response_head="HTTP/1.1 200 OK\r\n\r\n".encode("utf8") #返回head

  response_body=request_kw.encode("utf8") #返回body

  返回数据分为head和body,这里要着重说明,在浏览器中,返回的head是不显示在页面的,可以通过f12去查看我们返回的head,在python中,我们用requests获取内容,默认不会返回head部分

  body是我们返回的主体,可以是url,也可以文件,但注意,一定要转为二进制

  web_client.send(response_head)

  web_client.send(response_body)

  然后,我们使用send函数返回客户端head和body,这时,客户端就可以接收到我们发送的数据了。

  一定要记住,web_client.recv()接收客户端请求数据,web_client.send()返回给客户端数据,最后不要忘了编码和解码

  web_client.close()

  返回客户端数据以后,我们将进程中的连接关闭。

  以上是全部代码,大家把所有代码复制,直接运行就可以了,这里给大家出个题目,如果设置需要验证密码,如果客户端传入密码正确,就返回数据,不正确,就返回密码错误

看完上述内容,你们对如何用python创建最简单的服务器有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网行业资讯频道,感谢大家的支持。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-服务器
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯