golang socket 例子

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

自己寫了一個 socket通訊  用golang 來寫一下 。很簡潔了 下面直接看代碼就行了。注釋寫的很詳細了。不懂下方評論

伺服器端

package mainimport ("bufio""fmt""io""net")func main() {// 使用tcp 協議 監聽本機 8080連接埠list, err := net.Listen("tcp", "127.0.0.1:8080")if err != nil {fmt.Println("網路監聽失敗!")fmt.Println(err)}//記得要關閉defer list.Close()for {//等待連結 如果有連結過來的的話 會賦值給 c ,errc, err := list.Accept()if err != nil {fmt.Println("錯誤的連結")}//有可能會有多個請求發送過來 所以這裡用並行的方式go Handle(c)}}func Handle(conn net.Conn) {defer conn.Close()//建立一個緩衝*Reader 並讀取對應的資料data, err := bufio.NewReader(conn).ReadString('\n')//如果資料讀取完 err 會變成 EOF  這個並不是 錯誤。if err != nil && err != io.EOF {fmt.Println(err.Error())}fmt.Println(data)}

用戶端

package mainimport ("fmt""net""os")func main() {//通過tcp 協議連結 本機 8080連接埠con, err := net.Dial("tcp", "127.0.0.1:8080")//如果出現錯誤 說明連結失敗if err != nil {fmt.Println("串連伺服器端失敗")fmt.Println(err.Error())os.Exit(0)}//記得關閉 defer con.Close()//開始向伺服器端發送 hellonum, write_err := con.Write([]byte("hello"))//如果寫入有問題 輸出對應的錯誤資訊if write_err != nil {fmt.Println(write_err.Error())}//如果沒有問題。顯示對應的寫入長度fmt.Println(num)}


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.