本文實(shí)例講述了Go語(yǔ)言實(shí)現(xiàn)socket的方法。分享給大家供大家參考。具體分析如下:
用golang不用他的net包還有什么意義,這里提供一個(gè)測(cè)試代碼:
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 客戶(hù)端:
復(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)
}
希望本文所述對(duì)大家的Go語(yǔ)言程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:- golang基于websocket實(shí)現(xiàn)的簡(jiǎn)易聊天室程序
- golang網(wǎng)絡(luò)socket粘包問(wèn)題的解決方法
- 剖析Go編寫(xiě)的Socket服務(wù)器模塊解耦及基礎(chǔ)模塊的設(shè)計(jì)
- Go語(yǔ)言基于Socket編寫(xiě)服務(wù)器端與客戶(hù)端通信的實(shí)例
- 利用Go語(yǔ)言初步搭建一個(gè)web應(yīng)用的教程
- Go語(yǔ)言實(shí)現(xiàn)的web爬蟲(chóng)實(shí)例
- Go語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單的一個(gè)靜態(tài)WEB服務(wù)器
- Python Web框架Pylons中使用MongoDB的例子
- go的websocket實(shí)現(xiàn)原理與用法詳解