Go語(yǔ)言實(shí)現(xiàn)socket實(shí)例
更新時(shí)間:2015年02月24日 11:06:03 作者:不吃皮蛋
這篇文章主要介紹了Go語(yǔ)言實(shí)現(xiàn)socket的方法,實(shí)例分析了socket客戶端與服務(wù)器端的實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
本文實(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)
}
}
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)
}
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粘包問題的解決方法
- 剖析Go編寫的Socket服務(wù)器模塊解耦及基礎(chǔ)模塊的設(shè)計(jì)
- Go語(yǔ)言基于Socket編寫服務(wù)器端與客戶端通信的實(shí)例
- 利用Go語(yǔ)言初步搭建一個(gè)web應(yīng)用的教程
- Go語(yǔ)言實(shí)現(xiàn)的web爬蟲實(shí)例
- Go語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單的一個(gè)靜態(tài)WEB服務(wù)器
- Python Web框架Pylons中使用MongoDB的例子
- go的websocket實(shí)現(xiàn)原理與用法詳解
相關(guān)文章
Golang性能提升利器之SectionReader的用法詳解
本文將介紹 Go 語(yǔ)言中的 SectionReader,包括 SectionReader的基本使用方法、實(shí)現(xiàn)原理、使用注意事項(xiàng),感興趣的小伙伴可以了解一下2023-07-07go單例實(shí)現(xiàn)雙重檢測(cè)是否安全的示例代碼
這篇文章主要介紹了go單例實(shí)現(xiàn)雙重檢測(cè)是否安全,本文給大家分享雙重檢驗(yàn)示例代碼,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03