diff go/server.go @ 0:d3b8cd5aeb70

make repo.
author pyon@macmini
date Sun, 30 Sep 2018 17:27:04 +0900
parents
children eaa27e4ed5be
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/go/server.go	Sun Sep 30 17:27:04 2018 +0900
@@ -0,0 +1,61 @@
+/*
+ server.go  : server-program.
+ Version    : 1.0
+ Last Change: 2018-09-30 Sun 16:03:40.
+
+ install to: server_root/
+
+ server_root/server
+            + db/
+            + release/
+            + images/
+*/
+package main
+
+import(
+    "path/filepath"
+	"fmt"
+	"io"
+	"log"
+	"net"
+    "net/http"
+	"os"
+)
+
+func main() {
+
+	var server string
+    var port = ":3910"
+
+	addrs, err := net.InterfaceAddrs()
+	if err != nil {
+		log.Fatal( err )
+	}
+	for _, a := range addrs {
+		if ipnet, ok := a.( *net.IPNet ); ok && !ipnet.IP.IsLoopback() {
+			if ipnet.IP.To4() != nil {
+				server = ipnet.IP.String() + port
+			}
+		}
+	}
+
+    cwd, err := os.Getwd()
+    if err != nil {
+        log.Fatal( err )
+    }
+
+	fmt.Println( "server start [", server, "]" )
+	http.HandleFunc( "/", func( w http.ResponseWriter, r *http.Request ) {
+        file := filepath.Join( cwd, filepath.FromSlash( r.URL.Path ) )
+        fmt.Println( file )
+        f, err := os.Open( file )
+        if err != nil {
+            http.NotFound( w, r )
+            return
+        }
+        defer f.Close()
+        io.Copy( w, f )
+    } )
+	log.Fatal( http.ListenAndServe( server, nil ) )
+}
+