comparison go/server.go @ 0:d3b8cd5aeb70

make repo.
author pyon@macmini
date Sun, 30 Sep 2018 17:27:04 +0900
parents
children eaa27e4ed5be
comparison
equal deleted inserted replaced
-1:000000000000 0:d3b8cd5aeb70
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