nc 模拟服务器_Go实战——实现一个并发时钟服务器
生命不止,繼續(xù) go go go !!!
golang就是為高并發(fā)而生的,為我們提供了goroutines和channel。雖然前面博客的代碼片段中也有用到這兩個(gè)關(guān)鍵字,但是一直沒有組織好語言,也沒有能力把goroutines和channel寫好,那么估計(jì)我們先用,然后再看看的理解。
goroutines
A goroutine is a lightweight thread managed by the Go runtime.
幾個(gè)關(guān)鍵字:輕量級,線程。
區(qū)別:
f() // call f(); wait for it to return go f() // create a new goroutine that calls f(); don't wait12channels
Channels are the pipes that connect concurrent goroutines.
幾個(gè)關(guān)鍵字:管道 連接。
用了make聲明,時(shí)引用類型。
順序時(shí)鐘服務(wù)器
之前的博客已經(jīng)介紹了很多,如何使用net/http包來構(gòu)建一個(gè)服務(wù)器,關(guān)于golang中time package在昨天的博客中也有介紹了。
TCP 服務(wù)器,直接上代碼:
然后go build即可。
nc命令介紹
centos上安裝nc命令:
作用:
(1)實(shí)現(xiàn)任意TCP/UDP端口的偵聽,nc可以作為server以TCP或UDP方式偵聽指定端口
(2)端口的掃描,nc可以作為client發(fā)起TCP或UDP連接
(3)機(jī)器之間傳輸文件
(4)機(jī)器之間網(wǎng)絡(luò)測速
使用nc命令模擬client獲得服務(wù)器時(shí)間
后臺(tái)運(yùn)行服務(wù)器:
使用nc命令:
nc localhost 80801輸出結(jié)果:
2017-06-22 13:28:41
2017-06-22 13:28:42
2017-06-22 13:28:43
2017-06-22 13:28:44
2017-06-22 13:28:45
2017-06-22 13:28:46
2017-06-22 13:28:47
2017-06-22 13:28:48
2017-06-22 13:28:49
2017-06-22 13:28:50
2017-06-22 13:28:51
….
這是個(gè)順序服務(wù)器,如果多個(gè)客戶端連接的話,需要第一個(gè)結(jié)束后再執(zhí)行第二個(gè)。
支持并發(fā)的始終服務(wù)器
很簡單,在上面的代碼在handle中加入關(guān)鍵字go即可:
運(yùn)行結(jié)果:
總結(jié)
以上是生活随笔為你收集整理的nc 模拟服务器_Go实战——实现一个并发时钟服务器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python发挥程度_你为什么用 Pyt
- 下一篇: 后端 消息 转发_SAP PO 消息报文