comparison go/server.go @ 3:db4813125eb8

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