系统分析与设计 HW3

golang 学习报告

环境配置

操作系统: ubuntu 16.04
用apt-get命令安装: sudo apt-get install golang
安装成功

golang入门

package main
import "fmt"

func main() {
    fmt.Printf("hello world!\n")
}

任何语言第一个程序都是hello world,从hello world程序开始分析:
第一行:go语言编写的文件都是以package <…>开头的,对于独立运行的执行文件,则开头必须为package main
第二行:导入库,将fmt包加入main。
最后几行:主函数,通过调用fmt包的函数,将“hello world”打印到屏幕。
编译运行
编译 go build filename
编译并运行 go run filename
这里写图片描述

用golang的http包建立服务器

代码如下:

package main
import (
    "fmt"
    "net/http"
    "strings"
    "log"
)
func sayhelloName(w http.ResponseWriter, r *http.Request) {
    r.ParseForm() //解析参数
    fmt.Println(r.Form) //输出到服务器端的打印信息
    fmt.Println("path", r.URL.Path)
    fmt.Println("scheme", r.URL.Scheme)
    fmt.Println(r.Form["url_long"])
    for k, v := range r.Form {
        fmt.Println("key:", k)
        fmt.Println("val:", strings.Join(v, ""))
    }
    fmt.Fprintf(w, "Hello Wrold!") //这个写入到w的是输出到客户端的
}
func main() {
    http.HandleFunc("/", sayhelloName) //设置访问的路由
    err := http.ListenAndServe(":8000", nil) //设置监听的端口
    if err != nil {
        log.Fatal("ListenAndServe: ", err)
    }
}

编译并运行,然后在浏览器中输入地址:localhost:8000,成功访问到服务器
这里写图片描述
尝试加入参数:http://localhost:9090/?url_long=111&url_long=222
服务端解析:
这里写图片描述

实现简单文件服务器

package main  

import (  
    "fmt"  
    "net/http"  
)  

func main() {  
    http.Handle("/", http.FileServer(http.Dir("./")))  
    e := http.ListenAndServe(":8080", nil)  
    fmt.Println(e)  
}  

这里写图片描述

阅读更多
个人分类: 系统分析与设计
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭