annotate go/server.go @ 2:7fe3417cefc8

GUI.
author pyon@macmini
date Tue, 02 Oct 2018 21:20:05 +0900
parents eaa27e4ed5be
children db4813125eb8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
1 /*
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
2 server.go : server-program.
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
3 Version : 1.0
1
eaa27e4ed5be add client_ui.go
pyon@macmini
parents: 0
diff changeset
4 Last Change: 2018-10-01 Mon 22:58:23.
0
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
5
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
6 install to: server_root/
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
7
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
8 server_root/server
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
9 + db/
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
10 + release/
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
11 + images/
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
12 */
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
13 package main
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
14
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
15 import(
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
16 "path/filepath"
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
17 "fmt"
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
18 "io"
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
19 "log"
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
20 "net"
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
21 "net/http"
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
22 "os"
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
23 )
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
24
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
25 func main() {
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
26
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
27 var server string
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
28 var port = ":3910"
1
eaa27e4ed5be add client_ui.go
pyon@macmini
parents: 0
diff changeset
29 var server_root = filepath.Dir (os.Args[0] )
0
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
30
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
31 addrs, err := net.InterfaceAddrs()
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
32 if err != nil {
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
33 log.Fatal( err )
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
34 }
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
35 for _, a := range addrs {
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
36 if ipnet, ok := a.( *net.IPNet ); ok && !ipnet.IP.IsLoopback() {
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
37 if ipnet.IP.To4() != nil {
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
38 server = ipnet.IP.String() + port
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
39 }
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
40 }
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
41 }
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
42
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
43 fmt.Println( "server start [", server, "]" )
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
44 http.HandleFunc( "/", func( w http.ResponseWriter, r *http.Request ) {
1
eaa27e4ed5be add client_ui.go
pyon@macmini
parents: 0
diff changeset
45 file := filepath.Join( server_root, filepath.FromSlash( r.URL.Path ) )
0
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
46 fmt.Println( file )
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
47 f, err := os.Open( file )
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
48 if err != nil {
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
49 http.NotFound( w, r )
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
50 return
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
51 }
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
52 defer f.Close()
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
53 io.Copy( w, f )
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
54 } )
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
55 log.Fatal( http.ListenAndServe( server, nil ) )
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
56 }
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
57