go簡易udp客戶端和伺服器

2021-07-10 21:45:36 字數 1297 閱讀 6948

以前使用socket程式設計時,一般是如下步驟

建立socket,socket

繫結socket,bind

監聽,listen

接受連線,accept

接受/傳送,recv/send

go語言對其進行了抽象和封裝,剛開始接觸有可能不太適應(譬如我第一天用的時候覺得api好難找……建議參考文件),後來發現用起來很爽

簡單來說,客戶端省去了很多!客戶端只需要呼叫net.dial()即可,伺服器我這裡還需要摸索一下,但是也是很簡單了,不過流程感覺沒簡化- -

廢話不多說,直接上**

import (

"os"

"fmt"

"net"

)func checkerror(err error)

}func recvudpmsg(conn *net.udpconn)

fmt.println("msg is ", string(buf[0:n]))

//writetoudp

//func (c *udpconn) writetoudp(b byte, addr *udpaddr) (int, error)

_, err = conn.writetoudp(byte("nice to see u"), raddr)

checkerror(err)

}func main()

流程

先通過net.resolveudpaddr建立監聽位址

net.listenudp建立監聽鏈結

然後通過conn.readfromudp和conn.writetoudp收發udp報文

package main

import (

"os"

"fmt"

"net"

// "io"

)func main()

conn.write(byte("hello world!"))

fmt.println("send msg")

var msg [20]byte

conn.read(msg[0:])

fmt.println("msg is", string(msg[0

:10]))

}

客戶端非常簡單,先通過net.dial(「udp」, 「127.0.0.1:11110」),建立傳送報文至本機11110埠的socket,然後使用conn.write和conn.read收發包,當然conn.readfromudp和conn.writetoudp也是可以的

Redis客戶端和伺服器

一 redis客戶端 redisserver結構中儲存了所有客戶端的狀態資訊。struct redisserver 命令client list可以列出目前所有連線到伺服器的客戶端。命令client setname name 可以給客戶端設定乙個名字。偽客戶端 由於伺服器必須接收來自客戶端的命令以執行...

Redis 客戶端和伺服器

客戶端的資料結構 typedef struct redisclient redisclient 名字 name 標誌值 flags 指向客戶端正在使用的資料庫的指標,以及該資料庫的號碼 當前要執行的命令 命令的引數 命令的個數,以及指向命令實現函式的指標 輸入緩衝區 querybuf 輸出緩衝區 複...

C 客戶端和伺服器端

1 c s 客戶端應用程式 winform wpf 平級 資料是存放在其他的電腦上或伺服器上 資料的加工是在使用者的電腦上執行的,會對使用者的電腦配置有所要求 2 b s 網頁端應用程式 asp.net 統稱 asp.net webform asp.net mvc 平級 使用者傳送乙個請求到iis伺...