Mercurial > mercurial > hgweb_rsearcher.cgi
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 } |
