在mac上安装Go语言初体验
我將在mac os x的開發機器上安裝go語言的開發環境。
go語言運行包下載地址:http://code.google.com/p/go/downloads/list
這里我選擇安裝?go1.0.3.darwin-amd64.pkg
在mac上點擊安裝,運行包自動安裝到/usr/local/go中,這樣在命令終端就可以運行go命令了
這里,我把go編輯器安裝到我的xcode應用程序中,由于我的xcode裝的是4.x以上
在/usr/local/go/misc中,可以看到有很多編輯器版本,這里找到xcode目錄,里面進入4,有個go4xcode.sh
在終端中輸入:
sudo?sh./go4xcode.sh
也許有的,你會報以下這樣的錯誤:
xcrun: Error: could not stat active Xcode path '/Volumes/Xcode/Xcode44-DP7.app/Contents/Developer'. (No such file or directory)
可以查看這個解決方法:http://stackoverflow.com/questions/11456918/change-xcrun-developer-path
通過xcode-select命令來解決。
默認mac上安裝go運行包,不會添加GOROOT的環境變量,你必須加上一個GOROOT為/usr/local/go的目錄,這樣再執行go4xcode.sh的時候就不會出現錯誤。
現在引用一個socket通信樣例:
server
package?main?
import?(
????"net"
????"fmt"
????"io"
)
?
const?RECV_BUF_LEN?=?1024
?
func?main()?{
????listener,?err?:=?net.Listen("tcp",?"0.0.0.0:6666")//偵聽在6666端口
????if?err?!=?nil?{
????????panic("error?listening:"+err.Error())
????}
????fmt.Println("Starting?the?server")
?
????for?{
????????conn,?err?:=?listener.Accept()?//接受連接
????????if?err?!=?nil?{
????????????panic("Error?accept:"+err.Error())
????????}
????????fmt.Println("Accepted?the?Connection?:",?conn.RemoteAddr())
????????go?EchoServer(conn)
????}
}
?
func?EchoServer(conn?net.Conn)?{
????buf?:=?make([]byte,?RECV_BUF_LEN)
????defer?conn.Close()
?
????for?{
????????n,?err?:=?conn.Read(buf);
????????switch?err?{
????????????case?nil:
????????????????conn.Write(?buf[0:n]?)
????????????case?io.EOF:
????????????????fmt.Printf("Warning:?End?of?data:?%s?\n",?err);
????????????????return
????????????default:
????????????????fmt.Printf("Error:?Reading?data?:?%s?\n",?err);
????????????????return
????????}
?????}
}
?
client
package?main?
import?(
????"fmt"
????"time"
????"net"
)
?
const?RECV_BUF_LEN?=?1024
?
func?main()?{
????conn,err?:=?net.Dial("tcp",?"127.0.0.1:6666")
????if?err?!=?nil?{
????????panic(err.Error())
????}
????defer?conn.Close()
?
????buf?:=?make([]byte,?RECV_BUF_LEN)
?
????for?i?:=?0;?i?<?5;?i++?{
????????//準備要發送的字符串
????????msg?:=?fmt.Sprintf("Hello?World,?%03d",?i)
????????n,?err?:=?conn.Write([]byte(msg))
????????if?err?!=?nil?{
????????????println("Write?Buffer?Error:",?err.Error())
????????????break
????????}
????????fmt.Println(msg)
?
????????//從服務器端收字符串
????????n,?err?=?conn.Read(buf)
????????if?err?!=nil?{
????????????println("Read?Buffer?Error:",?err.Error())
????????????break
????????}
????????fmt.Println(string(buf[0:n]))
?
????????//等一秒鐘
????????time.Sleep(time.Second)
????}
}
?
先執行server:
go?run?server.go再執行client:
go?run?client.go回過來看server端:
當client信息發送結束后,會在server段顯示 EOF結束的字符。
?
另外,執行go build xxx.go在當前目錄下會產生一個unit可執行文件,執行./xxx 即可執行文件。
總結
以上是生活随笔為你收集整理的在mac上安装Go语言初体验的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MFC添加自定义消息
- 下一篇: 【Boost】系列03:内存管理之sha