annotate go/server.go @ 3:db4813125eb8

many changes.
author pyon@macmini
date Thu, 11 Oct 2018 22:11:09 +0900
parents eaa27e4ed5be
children 06342fc544e4
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
3
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
4 Last Change: 2018-10-03 水 10:22:04.
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"
3
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
23 "time"
0
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
24 )
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
25
3
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
26 var server string
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
27 var port string
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
28 var server_root string
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
29
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
30 func init() {
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
31 port = ":3910"
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
32 server_root = filepath.Dir( os.Args[0] )
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
33 }
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
34
0
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
35 func main() {
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
36
3
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
37 // setting IP-Address & Port
0
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
38 addrs, err := net.InterfaceAddrs()
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
39 if err != nil {
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
40 log.Fatal( err )
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
41 }
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
42 for _, a := range addrs {
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
43 if ipnet, ok := a.( *net.IPNet ); ok && !ipnet.IP.IsLoopback() {
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
44 if ipnet.IP.To4() != nil {
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
45 server = ipnet.IP.String() + port
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
46 }
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
47 }
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
48 }
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
49
3
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
50 // start Web-server
0
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
51 fmt.Println( "server start [", server, "]" )
3
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
52 http.HandleFunc( "/", handler )
0
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
53 log.Fatal( http.ListenAndServe( server, nil ) )
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
54 }
d3b8cd5aeb70 make repo.
pyon@macmini
parents:
diff changeset
55
3
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
56 func handler( w http.ResponseWriter, r *http.Request ) {
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
57 file := filepath.Join( server_root, filepath.FromSlash( r.URL.Path ) )
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
58 fmt.Println( "[access]", r.RemoteAddr, "|", time.Now().Format( "2006-01-02 15:04" ), "|", file )
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
59 f, err := os.Open( file )
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
60 if err != nil {
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
61 http.NotFound( w, r )
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
62 return
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
63 }
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
64 defer f.Close()
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
65 io.Copy( w, f )
db4813125eb8 many changes.
pyon@macmini
parents: 1
diff changeset
66 }