socket简单示例:
from socket import *
server = socket(AF_INET,SOCK_STREAM)
server.bind(('127.0.0.1',8888))
server.listen(5)
while True:
conn,addr = server.accpet()
data = conn.recv(8096)
print(data)
conn.send(b'HTTP/1.1 200 OK\r\n\r\n<h1>o98k<h1>')
conn.close()
不同路径返回不同的内容
from socket import *
server = socket(AF_INET,SOCK_STREAM)
server.bind((127.0.0.1',8888))
server.listen()
while True:
conn,addr = server.accept()
data = conn.recv(1024)
data_str = str(data,encoding='utf-8')
url = data_str.split('\r\n')[0].split(' ')[1]
print(url)
if url == 'home':
msg = b'<h1>home page<h1>'
elif url == '/index/'
msg = b'<h1>index page<h1>'
else:
msg = b'<h1>404<h1>'
conn.send(b'HTTP/1.1 200 OK \r\n')
conn.send(msg)
conn.close()
不同路径返回不同的内容升级版
from socket import *
server = socket(AF_INET,SOCK_STREAM)
server.bind((127.0.0.1',8888))
server.listen()
def home(url):
return b'<h1>home page</h1>'
def index(url):
return b'<h1>index page</h1>'
while True:
conn,addr = server.accept()
data = conn.recv(1024)
data_str = str(data,encoding='utf-8')
url = data_str.split('\r\n')[0].split(' ')[1]
print(url)
if url == 'home':
msg = home(url)
elif url == '/index/'
msg = index(url)
else:
msg = b'<h1>404<h1>'
conn.send(b'HTTP/1.1 200 OK \r\n')
conn.send(msg)
conn.close()
返回具体的url文件
from socket import *
server = socket(AF_INET,SOCK_STREAM)
server.bind(('127.0.0.1',8888))
def home(url):
s = 'this is {} page'.format(url)
return bytes(s,encoding='utf8')
def index(url)
return b'<h1>index page</h1>'
def user(url):
return b'hehe'
def login(url):
with open('login.html','rb') as f:
return f.read()
url2func = [
("/index/", index),
("/home/", home),
("/user/", user),
("/login/", login), ]
while True:
conn,addr = server.accept()
data = conn.recv(1024)
data_str = str(data,encoding='utf8')
url = data_str.split('\r\n')[0].split('')[1]
print(url)
func = None
for i in url2func:
if url == i[0]:
func = i[1]
break
else:
func = None
if func:
msg = func(url)
else:
msg = b'<h1>404</h1>'
conn.send(b'HTTP/1.1 200 OK\r\n\r\n')
conn.send(msg)
conn.close()