日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

在mac上安装Go语言初体验

發布時間:2023/12/20 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在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语言初体验的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。