golang 實現乙個聊天室

2021-09-18 02:45:15 字數 1051 閱讀 2600

最近看了一下go語言,就試著寫了乙個聊天室,練練手而已,但是對於我乙個搞php的來說,go語言對我啟發很大。

客服端

package main

import (

"fmt"

"net"

"os"

)//定義通道

var ch chan int = make(chan int)

//定義暱稱

var nickname string

func reader(conn *net.tcpconn)

fmt.println(string(buff[0:j]))

}}func main()

//為什麼不能放到if之前? err不為nil的話就是painc了 (painc 與 defer 辨析一下!!!)

defer conn.close()

go reader(conn)

fmt.println("請輸入暱稱")

fmt.scanln(&nickname)

fmt.println("你的暱稱為:", nickname)

for

}

伺服器端

package main

import (

"fmt"

"net"

)var connmap map[string]*net.tcpconn

func checkerr(err error) int

fmt.println("錯誤")

return -1

}return 1

}func say(tcpconn *net.tcpconn)

//廣播形式,向各個客戶端傳送資料

for _, conn := range connmap

conn.write(data[:total])}}

}func main()

}

實現乙個簡單的WebSocket聊天室

websocket 是 html5 開始提供的一種在單個 tcp 連線上進行全雙工通訊的協議。websocket 使得客戶端和伺服器之間的資料交換變得更加簡單,允許服務端主動向客戶端推送資料。在 websocket api 中,瀏覽器和伺服器只需要完成一次握手,兩者之間就直接可以建立永續性的連線,並...

golang 聊天室學習筆記

1聊天室伺服器端 package main import fmt net strings time 定義的此結構體為全域性map的value值,包括每乙個使用者的姓名,ip位址和私人管道 type client struct 這個函式是將私人管道中的內容傳送給使用者,配合全域性管道message使用...

乙個簡單聊天室的建立

經過乙個階段的asp學習,下面我們結合所學過的內容建立乙個最簡單的聊天室,雖然很簡單,但是大家可以通過他來掌握乙個聊天室建立的基本過程,並且可以不斷的完善其功能.下面介紹其主要步驟 3,最後把txtwho的內容初始化.也就是當瀏覽者輸入過一次自己的姓名以後就不用再次輸入了,為了區分每個不同的瀏覽者,...