go 網路程式設計(一)

2021-10-09 21:35:48 字數 3302 閱讀 1403

1、tcp

服務端監聽埠

接收客戶端請求建立鏈結

建立goroutine處理鏈結。

func

main()

}func

something

(conn net.conn)

line,_,

_:= reader.

readline()

//獲取一行輸入

conn.

write

(line)

//將命令列資料傳回客戶端}}

}

客戶端

建立與服務端的鏈結

進行資料收發

關閉鏈結

func

main()

}}

2、udp

服務端注意使用方法名的變化

監聽埠

接收客戶端資料

func

main()

)defer listener.

close()

for}

客戶端

建立與服務端的鏈結

傳送資料

關閉鏈結

服務端

func

客戶端
func

main()

附:handler和handlerfunc的區別

func

handle

(pattern string

, handler handler)

第乙個引數是路由匹配的字串,第二個是handler型別的值,即乙個介面,包含了serverhttp()方法,當接收到匹配路由的請求時,會呼叫這個方法

type handler inte***ce

handler和handlerfunc

func

handle

(pattern string

, handler handler)

第乙個引數是路由匹配的字串,第二個是handler型別的值,即乙個介面,包含了serverhttp()方法,當接收到匹配路由的請求時,會呼叫這個方法

type handler inte***ce

handler和handlerfunc

func

handle

(pattern string

, handler handler)

第乙個引數是路由匹配的字串,第二個是handler型別的值,即乙個介面,包含了serverhttp()方法,當接收到匹配路由的請求時,會呼叫這個方法

type handler inte***ce

func

handlefunc

(pattern string

, handler func

(responsewriter,

*request)

)

第乙個引數是路由匹配的字串,第二個是func(responsewriter, *request)型別的函式,handlerfunc型別實現了servehttp介面,所以其也可以轉換成handler型別

)第乙個引數是路由匹配的字串,第二個是func(responsewriter, *request)型別的函式,handlerfunc型別實現了servehttp介面,所以其也可以轉換成handler型別

)第乙個引數是路由匹配的字串,第二個是func(responsewriter, *request)型別的函式,handlerfunc型別實現了servehttp介面,所以其也可以轉換成handler型別

Go 網路程式設計

網頁伺服器 訪問並讀取頁面 websocket multi thread multi core tcp server.package main import flag fmt net syscall const maxread 25func main hostandport fmt.sprintf ...

go網路程式設計 RPC程式設計

remote procedure call,遠端過程呼叫 而一旦踏入公司尤其是大型網際網路公司就會發現,公司的系統都由成千上萬大大小小的服務組成,各服務部署在不同的機器上,由不同的團隊負責。這時就會遇到兩個問題 1 要搭建乙個新服務,免不了需要依賴他人的服務,而現在他人的服務都在遠端,怎麼呼叫?2 ...

go網路程式設計 http程式設計

一 web工作流程 web伺服器的工作原理可以簡單歸納為 1.客戶端通過tcp ip協議與伺服器建立連線 2.客戶端向伺服器傳送http協議請求包,請求伺服器裡的文件資源 3.伺服器向客戶端傳送http協議應答包,如果請求的資源中包含動態語言的內容,那麼伺服器會呼叫動態語言的解釋引擎負責處理 動態內...