這篇文章主要介紹了Go語言實(shí)現(xiàn)socket的方法,實(shí)例分析了socket客戶端與服務(wù)器端的實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
本文實(shí)例講述了Go語言實(shí)現(xiàn)socket的方法。分享給大家供大家參考。具體分析如下:
用golang不用他的net包還有什么意義,這里提供一個(gè)測試代碼:
server.go 服務(wù)端:
復(fù)制代碼代碼如下:
package main
import (
"fmt"
"log"
"net"
"bufio"
)
func handleConnection(conn net.Conn) {
data, err := bufio.NewReader(conn).ReadString('/n')
if err != nil {
log.Fatal("get client data error: ", err)
}
fmt.Printf("%#v/n", data)
fmt.Fprintf(conn, "hello client/n")
conn.Close()
}
func main() {
ln, err := net.Listen("tcp", ":6010")
if err != nil {
panic(err)
}
for {
conn, err := ln.Accept()
if err != nil {
log.Fatal("get client connection error: ", err)
}
go handleConnection(conn)
}
}
client.go 客戶端:
復(fù)制代碼代碼如下:
package main
import (
"fmt"
"net"
"bufio"
)
func main() {
conn, err := net.Dial("tcp", ":6010")
if err != nil {
panic(err)
}
fmt.Fprintf(conn, "hello server/n")
data, err := bufio.NewReader(conn).ReadString('/n')
if err != nil {
panic(err)
}
fmt.Printf("%#v/n", data)
}
希望本文所述對大家的Go語言程序設(shè)計(jì)有所幫助。