import socket, time, re
html="""
<html>
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html">
<title>LED控制</title>
</head>
<body>
<form method="post" action="12.php">
<span id="status" name="status">%s</span>
<input type="button" value="转换" onclick="onSubmit()">
<input type="text" value="转换" name=post>
<input type="submit" value="sub" >
</from>
</body>
</html>
<script>
function onSubmit(){
if (window.XMLHttpRequest) {
// 用于现代浏览器的代码,code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else {
// 应对老版本 IE 浏览器的代码,// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("status").innerHTML = xmlhttp.responseText;
// document.getElementById("status").value = xmlhttp.responseText;
}
}
xmlhttp.open("GET", "led", true);
xmlhttp.send("ssss");
}
</script>
"""
a=1
ip = "127.0.0.1"
port = 80
webserver = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #创建套接字
webserver.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) #设置给定套接字选项的值
#webserver.settimeout(2000)
#ip="192.168.4.1" #AP's IP
webserver.bind((ip, port)) #绑定IP地址和端口号
webserver.listen(5) #监听套接字
print("服务器地址:%s:%d" %(ip,port))
while True:
conn, addr = webserver.accept() #接受一个连接,conn是一个新的socket对象
request = conn.recv(1024) #从套接字接收1024字节的数据
if len(request)>0:
request = request.decode()
result = re.search("(.*?) (.*?) HTTP/1.1", request)
if result:
method = result.group(1)
url = result.group(2)
print(url)
if method == "POST":#获得post数据
postdata = re.search(".*?\r\n\r\n(.*)", request).group(1)
if postdata:
lists = postdata.split("&")
payload = {}#将post数据存数组
for list in lists:
k,v = list.split("=")
payload[k]=v
#print(payload)
#conn.sendall("HTTP/1.1 200 OK\nConnection: close\nServer: Esp8266\nContent-Type: text/html;charset=UTF-8\n\n")
conn.send("HTTP/1.1 200 OK\r\n")
conn.send("Server: Esp8266\r\n")
conn.send("Content-Type: text/html;charset=UTF-8\r\n")
conn.send("Connection: close\r\n")
conn.send("\r\n")
if url =="/":
conn.sendall(html)
elif url == "/12.php":
conn.sendall(payload["post"])
conn.send("\r\n") # 发送结束
else:
print("not found url")
else:
print("no request")
conn.close()
print("out %s" % str(addr))