go語言網路程式設計之tcp
go語言網路程式設計需要匯入包 net如下
import(
"fmt"
"net"
)
重要函式
funclisten(net,laddr
string)(listener,
error)
funcaccept()
(cconn,
errerror
)
funcread(b
byte)(n
int,
errerror
)
好,我們先寫乙個go伺服器端。
程式設計之前,先來了解下go語法,熟悉的跳過此段。
go的變數宣告比較怪,和c的宣告「相反」
c語言的宣告是這樣的 int a;
go語言的宣告是這樣的 var a int; 如果無視var這個標誌,你會就是「相反」。
而且你宣告不使用會報錯,在go中。
go語言的多變數賦值, i:=1 等價於剛才說明的 var i int = 1,下面的i,j賦值會自動匹配 i=1,j=1
i,j:=1,1
i=i+j
恩,這個多變數賦值的這個東西,在函式返回值有多變數的用上。對,go語言函式可以返回多個值⊙﹏⊙
和lua語言相似。
go語言的函式實現如下所示,函式形參的宣告不用帶上var
func test(r
string
, err
string
)
i,j:=test("1","2");
go語言的for和if
if和for 一樣,可以在條件之前執行乙個簡單的語句,用分號相隔,由這個語句定義的變數的作用域僅在 if 範圍之內。
如下所示
if y:=5;y==5
go語言defer的使用,**例子如下
file.open("c:/test.txt")
defer file.close()
作用:在函式退出時呼叫,這樣就有效避免了c語言中的記憶體洩露問題.
下面大家可以看看超級簡單的tcp伺服器端的**
package main
import (
"net"
"fmt"
)func main()
}
}}else
下面則是客戶端的**
conn,err:=net.dial("tcp","127.0.0.1:7777")
iferr==
nil
}
}
}else
整合在一起就是以下**
ifos.args[1]==
"server"
}
}else
}else
}
}
}else
}
go語言網路程式設計 TCP程式設計
一.tcp socket程式設計 go的tcp服務端流程分為三步 1 監聽埠 2 接收客戶端請求連線,返回conn 3 建立goroutine處理請求 乙個例項如下 tcp服務端 package main import fmt net bufio func process conn net.conn...
網路程式設計之TCP程式設計
tcp程式設計中,如果要完成通訊,通訊雙方必須要建立socket,通過socket完成通訊。tcp通訊步驟 1 伺服器啟動serversocket作為通訊的server端,等待客戶端鏈入。2 客戶端建立socket作為通訊的client端 3 client端鏈入server端後建立可靠的 雙向的 持...
網路程式設計之TCP程式設計案例
客戶端 public static void main string args fileinputstream.close outputstream.close catch unknownhostexception e catch ioexception e 伺服器 public static vo...