网络编程
tcp
package main
import (
"fmt"
"net"
"time"
)
func main() {
addr, _ := net.ResolveTCPAddr("tcp", "localhost:8080")
listen, err := net.ListenTCP("tcp", addr)
if err != nil {
fmt.Println(err)
return
}
fmt.Println("tcp server is open in ", "http://"+addr.String())
for {
conn, err := listen.Accept()
if err != nil {
break
}
fmt.Println(conn.RemoteAddr())
conn.Write([]byte("hello world"))
time.Sleep(2 * time.Second)
conn.Close()
}
}
HTTP
package main
import (
"fmt"
"net/http"
)
func Index(writer http.ResponseWriter, request *http.Request) {
fmt.Println(request.URL.Path)
writer.Write([]byte("你好"))
}
func main() {
http.HandleFunc("/", Index)
fmt.Println("Web server listen addr: http://localhost:8080")
http.ListenAndServe("localhost:8080", nil)
}
gRPC
Websocket