新钛云服已累计为您分享665篇技术干货
最近做了一个项目,其中用到了网络编程,下面和大家分享下在Go中网络编程的实现。
在Go中, 网络编程主要通过 net 包实现。支持 包括TCP/IP、UDP、域名解析和Unix域socket等连接,此外,还通过 net/http ,net/rpc 等提供了 HTTP,RPC等主流应用层的连接协议。
1、TCP 服务
TCP 是最常用的网络连接方式,以 TCP 连接为例,一个简单的 TCP 连接代码示例。
Client:
package main
import (
"bufio"
"fmt"
"os"
"strings"
"net"
)
func main() {
conn, err := net.Dial("tcp", "tyun.cn:8088")
if err != nil {
//handle
}
defer conn.Close()
inputReader := bufio.NewReader(os.Stdin)
for{
//读取输入
readString,_ :=inputReader.ReadString('\n')
trim := strings.Trim(readString,"\r\n")
_,err :=conn.Write([]byte(trim))
if err!=nil{
return
}
buf := [512]byte{}
n,err := conn.Read(buf[:])
if err!=nil{
return
}
fmt.Println(string(buf[:n]))
}
}
Server:
package main
import (
"bufio"
"fmt"
"net"
)
func main() {
listen,err:= net.Listen("tcp",":8088")
if err != nil{
//handle
}
for {
conn,err := listen.Accept()
if err != nil{
//handle
continue
}
defe