From 91275c0da873fefde8ef8bb5b0a72ed39fd87ec3 Mon Sep 17 00:00:00 2001 From: Igor V Belousov <igor@belousovv.ru> Date: Tue, 23 Nov 2021 21:30:21 +0300 Subject: [PATCH] Chapter 1 - server2.go --- ch1/server2.go | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 ch1/server2.go diff --git a/ch1/server2.go b/ch1/server2.go new file mode 100644 index 0000000..49b69a1 --- /dev/null +++ b/ch1/server2.go @@ -0,0 +1,33 @@ +// Server2 - минимальный "echo"-сервер со счетчиком запросов. +package main + +import ( + "fmt" + "log" + "net/http" + "sync" +) + +var mu sync.Mutex +var count int + +func main() { + http.HandleFunc("/", handler) + http.HandleFunc("/count", counter) + log.Fatal(http.ListenAndServe("localhost:8888", nil)) +} + +// Обрабочик, возвращающий количество сделанных запросов. +func handler(w http.ResponseWriter, r *http.Request) { + mu.Lock() + count++ + mu.Unlock() + fmt.Fprintf(w, "URL.Path = %q\n", r.URL.Path) +} + +// Счетчик, возвращающий количество сделанных запросов. +func counter(w http.ResponseWriter, r *http.Request) { + mu.Lock() + fmt.Fprintf(w, "Count %d\n", count) + mu.Unlock() +} \ No newline at end of file