ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

[python全栈]05.网络编程(3)

2019-08-20 19:43:47  阅读:232  来源: 互联网

标签:__ 05 python request 全栈 IO sockfd connfd response


目录

  1. HTTPServer
  2. 阻塞IO与非阻塞IO
  3. IO多路复用
  4. select方案
  5. 位运算
  6. poll方案

1. HTTPServer

#httpserver.py
#服务端 httpserver

from socket import *

#定义处理客户端请求函数
def handleClient(connfd):
	request = connfd.recv(4096)
	request_lines = request.splitlines()
	#bytes.splitlines()
	for line in request_lines:
		print(line.decode())
	try:
		f = open("index.html")
	except IOError :
		response = "HTTP/1.1 404 not found\r\n"
		response += "\r\n" #空行
		response += "====Sorry not found===="
	else:	#未发生异常执行Else
		response = "HTTP/1.1 200 OK\r\n"
		response += "\r\n" #空行
		response += f.read()
	finally:
		connfd.send(response.encode())	


def main():
	sockfd = socket()
	sockfd.setsockopt(SOL_SOCKET,SO_REUSEADDR,1)
	sockfd.bind(("0.0.0.0",8888))
	sockfd.listen(3)
	print("listen to the port 8888")
	while True:
		connfd, addr = sockfd.accept()
		#调用处理客户端请求函数,并返回响应
		handleClient(connfd)
		connfd.close()

if __name__ == "__main__":
	main()

index.html

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Chrom</title>
</head>
<body>
	<h1>My HTML</h1>
</body>
</html>

2. 阻塞IO与非阻塞IO
3. IO多路复用
4. select方案
5. 位运算
6. poll方案

标签:__,05,python,request,全栈,IO,sockfd,connfd,response
来源: https://blog.csdn.net/weixin_45326041/article/details/99863414

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有