Skip to content

Commit b8cf81a

Browse files
authored
Merge pull request #10 from troublegum/dev
Release 1.5
2 parents ac72bf2 + 653e93f commit b8cf81a

File tree

2 files changed

+21
-7
lines changed

2 files changed

+21
-7
lines changed

README.md

+4-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
## Install
88

99
Download a code and unpack it into your project folder.
10-
Use Thonny IDE or other IDE for upload your code in ESP8266/ESP32 board.
10+
Use [Thonny IDE](https://thonny.org/) or other IDE for upload your code in ESP8266/ESP32 board.
1111

1212
## Quick start
1313

@@ -232,6 +232,8 @@ Constructor - srv = MicroPyServer(host="0.0.0.0", port=80)
232232

233233
Start server - srv.start()
234234

235+
Stop server - srv.stop()
236+
235237
Add new route - srv.add_route(path, handler, method="GET")
236238

237239
Send response to client - srv.send(response)
@@ -249,7 +251,7 @@ Set handler on server error - server.on_error(handler)
249251

250252
Send response to client - utils.send_response(server, response, http_code=200, content_type="text/html", extend_headers=None)
251253

252-
Get HTTP request method (example of return value: POST) - utils.get_request_method(request)
254+
Return HTTP request method (example of return value: POST) - utils.get_request_method(request)
253255

254256
Return http request query string (example of return value: param_one=one&param_two=two) - utils.get_request_query_string(request)
255257

micropyserver.py

+17-5
Original file line numberDiff line numberDiff line change
@@ -42,16 +42,20 @@ def __init__(self, host="0.0.0.0", port=80):
4242
self._on_request_handler = None
4343
self._on_not_found_handler = None
4444
self._on_error_handler = None
45+
self._sock = None
4546

4647
def start(self):
4748
""" Start server """
48-
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
49-
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
50-
sock.bind((self._host, self._port))
51-
sock.listen(1)
49+
self._sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
50+
self._sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
51+
self._sock.bind((self._host, self._port))
52+
self._sock.listen(1)
53+
print("Server start")
5254
while True:
55+
if self._sock is None:
56+
break
5357
try:
54-
self._connect, address = sock.accept()
58+
self._connect, address = self._sock.accept()
5559
request = self.get_request()
5660
if len(request) == 0:
5761
self._connect.close()
@@ -69,6 +73,13 @@ def start(self):
6973
finally:
7074
self._connect.close()
7175

76+
def stop(self):
77+
""" Stop the server """
78+
self._connect.close()
79+
self._sock.close()
80+
self._sock = None
81+
print("Server stop")
82+
7283
def add_route(self, path, handler, method="GET"):
7384
""" Add new route """
7485
self._routes.append(
@@ -140,3 +151,4 @@ def _internal_error(self, error):
140151
self.send("Error: " + str_error)
141152
print(str_error)
142153

154+

0 commit comments

Comments
 (0)