golang tcp server client
发布时间:2020-12-16 09:46:22 所属栏目:大数据 来源:网络整理
导读:实例代码如下: server import ( "fmt" "net" "log" )func main() { addr := "0.0.0.0:8080" tcpAddr, err := net.ResolveTCPAddr( "tcp" ,addr) if err != nil { log .Fatalf( "net.ResovleTCPAddr fail:%s" ,addr) } listener, err := net.ListenTCP( "tcp
实例代码如下: serverimport (
"fmt"
"net"
"log"
)
func main() {
addr := "0.0.0.0:8080"
tcpAddr,err := net.ResolveTCPAddr("tcp",addr)
if err != nil {
log.Fatalf("net.ResovleTCPAddr fail:%s",addr)
}
listener,err := net.ListenTCP("tcp",tcpAddr)
if err != nil {
log.Fatalf("listen %s fail: %s",addr,err)
} else {
log.Println("rpc listening",addr)
}
for {
conn,err := listener.Accept()
if err != nil {
log.Println("listener.Accept error:",err)
continue
}
go handleConnection(conn)
}
}
func handleConnection(conn net.Conn) {
defer conn.Close()
var buffer []byte = []byte("You are welcome. I'm server.")
n,err := conn.Write(buffer)
if err != nil {
fmt.Println("Write error:",err)
}
fmt.Println("send:",n)
fmt.Println("connetion end")
}
clientpackage main
import (
"fmt"
"net"
"os"
)
func main() {
conn,err := net.Dial("tcp","127.0.0.1:8080")
if err != nil {
fmt.Println("dial failed:",err)
os.Exit(1)
}
defer conn.Close()
buffer := make([]byte, 512)
n,err2 := conn.Read(buffer)
if err2 != nil {
fmt.Println("Read failed:",err2)
return
}
fmt.Println("count:",n,"msg:",string(buffer))
}
Read函数最多读取len(buffer)个字节到buffer中。 测试server output:
client output:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |