go語言簡單網(wǎng)絡(luò)程序?qū)嵗治?/h1>
更新時間:2015年02月27日 09:53:25 作者:不是JS
這篇文章主要介紹了go語言簡單網(wǎng)絡(luò)程序?qū)崿F(xiàn)方法,實(shí)例分析了服務(wù)器端與客戶端的實(shí)現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
本文實(shí)例分析了go語言簡單網(wǎng)絡(luò)程序。分享給大家供大家參考。具體分析如下:
服務(wù)端代碼如下:
復(fù)制代碼 代碼如下:package main
import (
"net"
"os"
)
func serve(s net.Conn) {
var buf [1024]byte
for {
n, err := s.Read(&buf)
if err != nil || n == 0 {
break;
}
s.Write(buf[0:n])
}
}
func main() {
l, e := net.Listen("tcp", ":12345")
if e != nil {
os.Exit(-1)
}
for {
s, e := l.Accept()
if e != nil {
os.Exit(-1)
}
go serve(s)
}
}
客戶端代碼如下:
復(fù)制代碼 代碼如下:package main
import (
"net"
"os"
)
func main() {
s, err := net.Dial("tcp", "", "192.168.1.168:12345")
if err != nil {
os.Exit(-1)
}
for {
var buf [1024]byte
n, err := os.Stdin.Read(&buf)
if err != nil || n == 0 {
os.Exit(-1)
}
s.Write(buf[0:n])
n, err = s.Read(&buf)
if err != nil || n == 0 {
os.Exit(-1)
}
os.Stdin.Write(buf[0:n])
}
}
希望本文所述對大家的Go語言程序設(shè)計有所幫助。
相關(guān)文章
-
執(zhí)行g(shù)o?vendor第三方包版本沖突問題解決
這篇文章主要為大家介紹了執(zhí)行g(shù)o?vendor時,第三方包go版本沖突問題的解決方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪 2022-07-07
-
Go語言中實(shí)現(xiàn)Unix風(fēng)格的進(jìn)程管道方法實(shí)例
這篇文章主要為大家介紹了Go語言中實(shí)現(xiàn)Unix風(fēng)格的進(jìn)程管道方法實(shí)例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪 2023-12-12
-
Golang中g(shù)oroutine和channel使用介紹深入分析
一次只做一件事情并不是完成任務(wù)最快的方法,一些大的任務(wù)可以拆解成若干個小任務(wù),goroutine可以讓程序同時處理幾個不同的任務(wù),goroutine使用channel來協(xié)調(diào)它們的工作,channel允許goroutine互相發(fā)送數(shù)據(jù)并同步,這樣一個goroutine就不會領(lǐng)先于另一個goroutine 2023-01-01
-
Go實(shí)現(xiàn)數(shù)據(jù)脫敏的方案設(shè)計
在一些常見的業(yè)務(wù)場景中可能涉及到用戶的手機(jī)號,銀行卡號等敏感數(shù)據(jù),對于這部分的數(shù)據(jù)經(jīng)常需要進(jìn)行數(shù)據(jù)脫敏處理,就是將此部分?jǐn)?shù)據(jù)隱私化,防止數(shù)據(jù)泄露,所以本文給大家介紹了Go實(shí)現(xiàn)數(shù)據(jù)脫敏的方案設(shè)計,需要的朋友可以參考下 2024-05-05
-
適合PHP同學(xué)的GoFrame框架使用體驗及學(xué)習(xí)建議
這篇文章主要為大家介紹了非常適合PHP同學(xué)使用的GoFrame框架設(shè)計思想使用體驗及學(xué)習(xí)建議介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪 2022-06-06
最新評論
本文實(shí)例分析了go語言簡單網(wǎng)絡(luò)程序。分享給大家供大家參考。具體分析如下:
服務(wù)端代碼如下:
復(fù)制代碼 代碼如下:
package main
import (
"net"
"os"
)
func serve(s net.Conn) {
var buf [1024]byte
for {
n, err := s.Read(&buf)
if err != nil || n == 0 {
break;
}
s.Write(buf[0:n])
}
}
func main() {
l, e := net.Listen("tcp", ":12345")
if e != nil {
os.Exit(-1)
}
for {
s, e := l.Accept()
if e != nil {
os.Exit(-1)
}
go serve(s)
}
}
import (
"net"
"os"
)
func serve(s net.Conn) {
var buf [1024]byte
for {
n, err := s.Read(&buf)
if err != nil || n == 0 {
break;
}
s.Write(buf[0:n])
}
}
func main() {
l, e := net.Listen("tcp", ":12345")
if e != nil {
os.Exit(-1)
}
for {
s, e := l.Accept()
if e != nil {
os.Exit(-1)
}
go serve(s)
}
}
客戶端代碼如下:
復(fù)制代碼 代碼如下:
package main
import (
"net"
"os"
)
func main() {
s, err := net.Dial("tcp", "", "192.168.1.168:12345")
if err != nil {
os.Exit(-1)
}
for {
var buf [1024]byte
n, err := os.Stdin.Read(&buf)
if err != nil || n == 0 {
os.Exit(-1)
}
s.Write(buf[0:n])
n, err = s.Read(&buf)
if err != nil || n == 0 {
os.Exit(-1)
}
os.Stdin.Write(buf[0:n])
}
}
import (
"net"
"os"
)
func main() {
s, err := net.Dial("tcp", "", "192.168.1.168:12345")
if err != nil {
os.Exit(-1)
}
for {
var buf [1024]byte
n, err := os.Stdin.Read(&buf)
if err != nil || n == 0 {
os.Exit(-1)
}
s.Write(buf[0:n])
n, err = s.Read(&buf)
if err != nil || n == 0 {
os.Exit(-1)
}
os.Stdin.Write(buf[0:n])
}
}
希望本文所述對大家的Go語言程序設(shè)計有所幫助。
相關(guān)文章
執(zhí)行g(shù)o?vendor第三方包版本沖突問題解決
這篇文章主要為大家介紹了執(zhí)行g(shù)o?vendor時,第三方包go版本沖突問題的解決方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07
Go語言中實(shí)現(xiàn)Unix風(fēng)格的進(jìn)程管道方法實(shí)例
這篇文章主要為大家介紹了Go語言中實(shí)現(xiàn)Unix風(fēng)格的進(jìn)程管道方法實(shí)例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
Golang中g(shù)oroutine和channel使用介紹深入分析
一次只做一件事情并不是完成任務(wù)最快的方法,一些大的任務(wù)可以拆解成若干個小任務(wù),goroutine可以讓程序同時處理幾個不同的任務(wù),goroutine使用channel來協(xié)調(diào)它們的工作,channel允許goroutine互相發(fā)送數(shù)據(jù)并同步,這樣一個goroutine就不會領(lǐng)先于另一個goroutine2023-01-01
Go實(shí)現(xiàn)數(shù)據(jù)脫敏的方案設(shè)計
在一些常見的業(yè)務(wù)場景中可能涉及到用戶的手機(jī)號,銀行卡號等敏感數(shù)據(jù),對于這部分的數(shù)據(jù)經(jīng)常需要進(jìn)行數(shù)據(jù)脫敏處理,就是將此部分?jǐn)?shù)據(jù)隱私化,防止數(shù)據(jù)泄露,所以本文給大家介紹了Go實(shí)現(xiàn)數(shù)據(jù)脫敏的方案設(shè)計,需要的朋友可以參考下2024-05-05
適合PHP同學(xué)的GoFrame框架使用體驗及學(xué)習(xí)建議
這篇文章主要為大家介紹了非常適合PHP同學(xué)使用的GoFrame框架設(shè)計思想使用體驗及學(xué)習(xí)建議介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06

