- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
快速搭建H十人斗公牛架设简单服务器.doc
从零开始搭建一个简易的H5十人斗公牛架设服务器(抠212303635论坛)其实大家大可不必被服务器这三个字吓到,一个入门级后端框架,所需的仅仅是HTTP相关的知识与应用这些知识的编程工具。据本人的经验,绝大多数人拥有搭建后端所涉及到的基础理论知识,但是缺乏能将之应用出去的工具,而本文即是交给读者这样一个工具,并能够运用之来实现一个可用的后端。
本文以基础理论知识的运用为主,并不会在服务器的稳定性安全性上做探究,同时为了避免大家在实现中被各种编程语言的独有特性所困扰,本文选用选 HYPERLINK /wiki/001374738125095c955c1e6d8bb493182103fac9270762a000 \t /wierton/article/details/_blank Python作为编程语言,并会附上详细的代码。
一、最初的尝试
HYPERLINK /wiki/%E8%B6%85%E6%96%87%E6%9C%AC%E4%BC%A0%E8%BE%93%E5%8D%8F%E8%AE%AE \t /wierton/article/details/_blank 超文本传输协议(HyperText Transfer Protocol)是迄今为止互联网应用最为广泛的协议,平时大家在浏览器上浏览网页,逛淘宝,刷博客,上知乎均是基于这种协议。
在互联网七层架构中HTTP位于TCP/UDP之上,这意味着我们我们可以在TCP/UDP层收发HTTP层的数据,而能够帮助我们在TCP/UDP层收发数据的最原始的一个工具—— HYPERLINK /p/e062b3dd110c \t /wierton/article/details/_blank 套接字。
几乎每一门编程语言都会原生支持套接字,所以本文选用套接字讲解,而非python语言本身拿手的第三方库,套接字与基础知识之间直接对接,这样不仅简化学习成本,同时易于读者从底层了解学习HTTP,也便于理解各种第三方库的实现机理,可谓一举三得。
在套接字的帮助下,我们可以写下第一个服务器端的框架:
#coding=utf-8import refrom socket import *
def handle_request(request):
return Welcome to wierton\s site
s = socket(AF_INET, SOCK_STREAM)
s.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
s.bind((, 8080))
s.listen(10)while 1:
conn,addr = s.accept()
print(connected by {}.format(addr))
recv_data = conn.recv(64*1024)
resp_data = handle_request(recv_data)
conn.sendall(resp_data)
conn.close()
s.close()
上述框架能够干嘛呢?想要实验上述代码的效果,你只要在浏览器中输入:8080,然后你就会看到一行字符串Welcome to wiertons site.,如图:
INCLUDEPICTURE \d http://upload-images.jianshu.io/upload_images/2839672-9392bd.png?imageMogr2/auto-orient/strip|imageView2/2/w/1240 \* MERGEFORMATINET
怎么样,是不是很有成就感,你的代码“成功”响应了浏览器的请求并回复了一个你设定好的字符串。
或许新入门的你对上述代码有所疑惑,不着急,我们来慢慢过一遍上述代码。
s = socket(AF_INET, SOCK_STREAM)创建一个流式套接字用于TCP通信
s.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)设定当前套接字,使其允许被复用
s.bind((, 8080))将当前套接字绑定到ip地址为,端口号为8080的连接上
注:虽然HTTP默认端口为80,但在linux下,监听80号端口需要root权限。
s.listen(10)监听当前套接字,设定并发数为10,即在多客户端并发请求时,第11个及其以后的连接请求会被拒绝
conn,addr = s.accept()响应一个连接请求
recv_data = conn.recv(64*1024)接收来自客户端的数据,并设置缓冲区大小为64KB
resp_data = handle
您可能关注的文档
最近下载
- 2024-2030年中国六氟磷酸锂行业市场现状供需分析及投资评估规划分析研究报告.docx
- 防护工程之三维网植被护坡(附施工图解、工艺、造价编制).pdf VIP
- 《中铁一局集团有限公司工程项目管理绩效考核办法》(中铁一成本[2015]623号).doc
- 机械打眼开炸石方(附施工图解、造价编制).pdf VIP
- 路基土石方(借土填方)(附施工图解、工艺、造价编制).pdf VIP
- 2023扬州龙川控股集团有限责任公司招聘试题及答案解析.docx
- 交通安全设施之交通标志(附施工图解、工艺、造价编制).pdf VIP
- 路基土石方之填挖交界(附施工图解、工艺、造价编制).pdf VIP
- 2纵横造价实战--抛石挤淤附施工图解、工艺、造价编制.pdf
- 2024《我的阿勒泰》作品简介PPT课件(精品).pptx
文档评论(0)