Go语言的标准net库使用

Go语言的标准net库使用

与大多数语言一样,Go的标准库是很全的,因为Go的出现本来就是为了网络通信的高并发实现,所以其相关的网络库封装得很简洁,也更加的易读。这里对使用到的api进行记录。
net.ResolveIPAddr()
根据域名查找IP地址

package main

import(
    "fmt"
    "net"
)

func main(){
    ip, err := net.ResolveIPAddr("ip", "www.baidu.com")
    if err != nil{
        fmt.Println(err)
        return
    }
    fmt.Println(ip)
}

简单的TCP服务器

package main

import(
    "fmt"
    "net"
)
func Read(con net.Conn){
    data := make([]byte, 1000)
    for{
        n, err := con.Read(data)
        if err != nil{
            fmt.Println(err)
            break
        }
        fmt.Println(string(data[0:n]))
    }
}
func main(){
    listen, err := net.Listen("tcp", "192.168.0.101:3569")
    if err != nil{
        fmt.Println(err)
        return
    }
    for{
        con, err := listen.Accept()
        if err != nil{
            fmt.Println(err)
            continue
        }
        go Read(con)
    }
}

简单的HTTP服务

package main

import(
    "fmt"
    "net/http"
)

func HandleIndex(w http.ResponseWriter, r *http.Request){
    r.ParseForm()
    fmt.Println("PATH: ", r.URL.Path)
    fmt.Println("SCHEME: ", r.URL.Scheme)
    fmt.Println("METHOD: ", r.Method)
    fmt.Println()
    fmt.Fprintf(w,  "<h1>Index Page</h1>")
    fmt.Println(w)
}

func main(){
    fmt.Println("Start")
    http.HandleFunc("/", HandleIndex)
    err := http.ListenAndServe(":8000", nil)
    if err != nil{
        fmt.Println(err)
    }
}

转载于:https://www.cnblogs.com/zzr-stdio/p/9874759.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值