client.go------------------------------package main
import (
"net""
fmt"
"bufio""
echo/codec""
time")
var quitsemaphore chan bool
func main()
//傳送訊息
func sendmessage(conn *net.tcpconn)
//lk
//b :=byte(msg +"\n")
//處理加密
b ,_ := codec.encode(msg+"\n"
) conn.write(b)
}}
server.go-----------------------------package main
import (
"bufio""
fmt"
"net""
echo/codec")
//用來記錄所有的客戶端連線
var connmap map[string]*net.tcpconn
func main()
fmt.println(
"a client connected :
"+tcpconn.remoteaddr().string())
//新連線加入 map
connmap[tcpconn.remoteaddr().string()] =tcpconn
go tcppipe(tcpconn)
}}//
處理傳送過來的訊息
func tcppipe(conn *net.tcpconn) ()
//讀取資料
reader :=bufio.newreader(conn)
for fmt.println(
string
(message))
//這裡返回訊息改為廣播
boradcastmessage(conn.remoteaddr().string()+"
:"+string
(message))
}}//
廣播給其它
func boradcastmessage(message string
) conn.write(b)
}}
codec.go------------------------package codec
import (
"bytes""
encoding/binary""
bufio")
func encode(message
string) (byte
, error)
//寫入訊息實體
err = binary.write(pkg, binary.littleendian, byte
(message))
if err !=nil
return
pkg.bytes(), nil
}func decode(reader *bufio.reader) (string
, error)
if int32(reader.buffered()) < length+4
//讀取訊息真正的內容
pack := make(byte, int(4+length))
_, err =reader.read(pack)
if err !=nil
return
string(pack[4
:]), nil
}
func onmessagerecived(conn *net.tcpconn)}}
golang實現簡易多人聊天伺服器
伺服器端server.go 如下 package main import fmt net var connmap map string net.tcpconn 客戶端ip到conn 接收連線 的對映 func checkerr err error int fmt.println 發生錯誤 retur...
websocket 簡易聊天
通過命令列執行php檔案 如 php q index.php php s localhost 8000 瀏覽器訪問index.html chatdemotitle charset utf 8 name viewport content width device width,initial scale...
PHP Ajax,簡易聊天室
index.html php愛好者聊天室公告 歡迎惡魔來到聊天室 22 05 35 php愛好者聊天室公告 歡迎天使來到聊天室 22 05 35 data.php 後端,從資料庫獲取所有聊天資訊 隨時獲取最新的聊天訊息 link mysql connect localhost root 123456...