summaryrefslogtreecommitdiff
path: root/protohackers/0-smoke-test/main.go
diff options
context:
space:
mode:
authorMathias Magnusson <mathias@magnusson.space>2024-02-28 18:00:30 +0100
committerMathias Magnusson <mathias@magnusson.space>2024-02-28 18:00:30 +0100
commit4e8ac826929117f95baeb37e1518773d1169d900 (patch)
tree8d83639b336ece6422e9f3391655db12f30d6013 /protohackers/0-smoke-test/main.go
parentd4fcb8a4a815ce8c888c3e06330e9cff71e3c312 (diff)
downloadprogramming-problem-solving-4e8ac826929117f95baeb37e1518773d1169d900.tar.gz
Random uncommited stuff
Diffstat (limited to 'protohackers/0-smoke-test/main.go')
-rw-r--r--protohackers/0-smoke-test/main.go42
1 files changed, 42 insertions, 0 deletions
diff --git a/protohackers/0-smoke-test/main.go b/protohackers/0-smoke-test/main.go
new file mode 100644
index 0000000..213d111
--- /dev/null
+++ b/protohackers/0-smoke-test/main.go
@@ -0,0 +1,42 @@
+package main
+
+import (
+ "io"
+ "log"
+ "net"
+)
+
+func main() {
+ listener, err := net.Listen("tcp", "0.0.0.0:7000")
+ if err != nil {
+ panic(err)
+ }
+
+ for {
+ go handle(listener.Accept())
+ }
+}
+
+func handle(conn net.Conn, err error) {
+ if err != nil {
+ log.Println(err)
+ return
+ }
+ defer conn.Close()
+
+ var buf [1024]byte
+ for {
+ n, readErr := conn.Read(buf[:])
+ log.Println("writing ", string(buf[:n]))
+ _, writeErr := conn.Write(buf[:n])
+ if writeErr != nil {
+ log.Println("error when writing", err)
+ }
+ if readErr != nil {
+ if readErr != io.EOF {
+ log.Println("error when reading", err)
+ }
+ return
+ }
+ }
+}