0
|
1 /*
|
|
2 server.go : server-program.
|
|
3 Version : 1.0
|
|
4 Last Change: 2018-09-30 Sun 16:03:40.
|
|
5
|
|
6 install to: server_root/
|
|
7
|
|
8 server_root/server
|
|
9 + db/
|
|
10 + release/
|
|
11 + images/
|
|
12 */
|
|
13 package main
|
|
14
|
|
15 import(
|
|
16 "path/filepath"
|
|
17 "fmt"
|
|
18 "io"
|
|
19 "log"
|
|
20 "net"
|
|
21 "net/http"
|
|
22 "os"
|
|
23 )
|
|
24
|
|
25 func main() {
|
|
26
|
|
27 var server string
|
|
28 var port = ":3910"
|
|
29
|
|
30 addrs, err := net.InterfaceAddrs()
|
|
31 if err != nil {
|
|
32 log.Fatal( err )
|
|
33 }
|
|
34 for _, a := range addrs {
|
|
35 if ipnet, ok := a.( *net.IPNet ); ok && !ipnet.IP.IsLoopback() {
|
|
36 if ipnet.IP.To4() != nil {
|
|
37 server = ipnet.IP.String() + port
|
|
38 }
|
|
39 }
|
|
40 }
|
|
41
|
|
42 cwd, err := os.Getwd()
|
|
43 if err != nil {
|
|
44 log.Fatal( err )
|
|
45 }
|
|
46
|
|
47 fmt.Println( "server start [", server, "]" )
|
|
48 http.HandleFunc( "/", func( w http.ResponseWriter, r *http.Request ) {
|
|
49 file := filepath.Join( cwd, filepath.FromSlash( r.URL.Path ) )
|
|
50 fmt.Println( file )
|
|
51 f, err := os.Open( file )
|
|
52 if err != nil {
|
|
53 http.NotFound( w, r )
|
|
54 return
|
|
55 }
|
|
56 defer f.Close()
|
|
57 io.Copy( w, f )
|
|
58 } )
|
|
59 log.Fatal( http.ListenAndServe( server, nil ) )
|
|
60 }
|
|
61
|