Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。ICMP是用來對網路狀況進行反饋的協議,可以用來偵測網路狀態或檢測網路錯誤。限於當前Golang在網路編程方面的代碼稀缺,資料甚少,所以分享一個用Golang來構造ICMP資料包並發送ping程式的echo訊息的執行個體。RFC792定義的echo資料包結構: 0 1 2 3 0 1 2 3 4 5 6 7 8
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。Golang 中對Channel 的支援添加了select關鍵字,Golang中基於Channel select的實現由監控、定時器等樣本參考http://blog.csdn.net/kjfcpua/article/details/18263839執行流程有點類似switch case,case
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。package mainimport ( "fmt" "reflect")type A struct { B Name string Age int UseTool bool}type B struct { C Name1 string Age1 int UseTool1 bool}type C struct {
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。golang udp服務端用戶端例子服務端:package mainimport ( "fmt" "net")func main() { // 建立監聽 socket, err := net.ListenUDP("udp4", &net.UDPAddr{ IP: net.IPv4(0, 0, 0, 0), Port: 8
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。Golang多線程檔案傳輸------------------------------前段時間抽空用Golang簡單實現了一下多線程檔案傳輸。採用的方式為將待傳輸的檔案拆分成多部分由多個協程同時傳輸。服務端在全部資料接收完成後將檔案拼接還原為原檔案。服務端編譯後直接執行,用戶端至少需要帶一個參數:待傳送檔案名 。另外更多參數中,第二參數為指定服務端最終產生的檔案名稱。第三個參數為單次發送資料包的大小(單位:Byte),最大不超過1
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。在go語言裡,提倡用通道通訊的方式來替代顯式的同步機制。但是我發現有的時候用通道通訊方式實現的似乎也不是很好(暫不考慮效率問題)。 假設有一個帳號的集合,需要在這個集合上實現一些操作,比如尋找修改等。這個集合的操作必須是支援並發的。如果用鎖的方式(方案1)實現大概是這樣:import "sync"type Info struct {age int}type AccountMap struct {accounts
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。安裝:1.官網安裝最新的golang安裝包我的是win7下載的是go1.4.2.windows-amd64配置環境變數 export GOROOT=$HOME/go export PATH=$PATH:$GOROOT/bin再配置GOPATH,路徑為GOPATH=d:GOPATHGOPATH主要用於第三方包存放目錄src下(個人理解)2.下載golang編輯器LiteIDE
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 go 官網網站: http://golang.org/ 下 windows 64 bit 安裝包: http://code.google.com/p/go/downloads/list 軟體是:go.go1.windows-amd64.msi eclipse 外掛程式是: http://code.google.com/p/goclipse/ 更新url
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。go中map並發使用是不安全的,當你使用goroutine同時對一個map進行讀寫操作時,不確定會發生什麼(由於讀寫執行順序不確定造成的).針對這種情況,我們要添加讀寫鎖對sync.RWMutex其進行同步.var counter = struct{ sync.RWMutex m map[string]int}{m:
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。golang的整型總類眾多,但一般只是使用使用int或者uintt就好了,package mainimport ("fmt""unsafe")func main() {var i1 int8 = 1 //1 bytevar i2 int16 = 2 //2 bytevar i3 int32 = 3 // 4 bytevar i4 int64 = 4 // 8 bytevar i5 int = 5
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 本文的是一篇入門文章,通過一個簡單的例子介紹Golang的Web編程主要用到的技術。 文章結構包括:Client-Get 請求 Client-Post 請求Server 處理 Get 和 Post 資料 在資料的封裝中,我們部分採用了json,因而本文也涉及到Golang中json的編碼和解碼。一、Client-Getpackage mainimport ( &
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。最近都在學習golang的內容,今天寫了點東西。學習是基於網上的一些文章。不過功能是全新的1)實現golang請求Get2)實現post登陸3) 實現web上傳(基於pp.sohu.com)代碼實現:package mainimport
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。package mainimport ("fmt""net/http")func indexHandler(w http.ResponseWriter, r *http.Request) {r.ParseForm()fmt.Println(r.URL.Path)w.Write([]byte("Hello"))}func main() {http.HandleFunc("/
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。Go語言很容易上手第一步,在你的電腦上安裝Go語言環境 首先下載對應作業系統的安裝包或者源檔案 Windows和Mac OSX 都有安裝包,可以選擇直接雙擊安裝,很簡單 Ubuntu系統可以使用 apt-get 安裝sudo apt-get install golang 當然,你也可以選擇使用源碼包安裝 擷取源碼:$ hg clone -u release
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。golang中,slice是對固定長度數組的一段切片,其底層是用對數值空間的指標實現的。在golang中當使用一個數組來建立slice時如:var array [5]int = [5]int{1,2,3,4,5}//切割出數組中的4個值,建立一個slicemyslice := array[0:4]列印array的值為:1, 2, 3, 4, 5列印mysqlice的值為:1, 2, 3,
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。http://www.cnblogs.com/zhepama/archive/2013/04/04/3000027.html安裝golangGOROOT 理論上只要定義這一個環境變數就可以玩了,go編譯的時候會首先在安裝目錄下尋找包GOBIN 如果不定義的話,預設是$GOROOT/bin 如果想不切換目錄執行go的命令的話.需要將$GOBIN 加入到PATH目錄中.這個你懂的GOPATH
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 本文的是一篇入門文章,通過一個簡單的例子介紹Golang的Web編程主要用到的技術。 文章結構包括:Client-Get 請求 Client-Post 請求 Server 處理 Get 和 Post 資料 在資料的封裝中,我們部分採用了json,因而本文也涉及到Golang中json的編碼和解碼。一、Client-Getpackage mainimport ( "fmt" "net/url
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。golang本身沒有提供串連mysql的驅動,但是定義了標準介面供第三方開發驅動。這裡串連mysql可以使用第三方庫,第三方庫推薦使用https://github.com/Go-SQL-Driver/MySQL這個驅動,更新維護都比較好。下面示範下具體的使用,完整程式碼範例可以參考最後。下載驅動sudo go get github.com/go-sql-driver/mysql如果提示這樣的失敗資訊:cannot
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。說說我對golang的interface賦值的理解。先說golang中類型方法定義。 如 type bird struct { id int}func (b bird) fly() { fmt.Println("fly")}func (b *bird) eat() { b.id++} 中bird類型有兩個方法,fly和eat。兩個方法是有區別的,fly由(b bird)綁定,
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。go-logger 是golang 的日誌庫 ,基於對golang內建log的封裝。用法類似java日誌工具包log4j列印日誌有5個方法 Debug,Info,Warn, Error ,Fatal 記錄層級由低到高設定記錄層級的方法為:logger.SetLevel() 如:logger.SetLevel(logger.WARN)則:logger.Debug(....),logger.Info(...)