以前使用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伺...