Golang TCP客户端实现菜单显示,实现广播聊天
Posted 卑微的小李
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Golang TCP客户端实现菜单显示,实现广播聊天相关的知识,希望对你有一定的参考价值。
通过嵌套循环实现用户选择操作
fmt.Println("1.公聊模式")
fmt.Println("2.私聊模式")
fmt.Println("3.修改用户名")
fmt.Println("4.退出")
var flag int
fmt.Scanln(&flag)
for
switch flag
case 1:
println("输入发送内容,发送end 回到上级目录")
var msg string
fmt.Scanln(&msg)
for msg != "end"
client.brodCast(msg)
fmt.Scanln(&msg)
case 2:
println("2")
case 3:
println("3")
case 4:
println("exit")
os.Exit(1)
default:
println("input invalid")
fmt.Println("1.公聊模式")
fmt.Println("2.私聊模式")
fmt.Println("3.修改用户名")
fmt.Println("4.退出")
fmt.Scanln(&flag)
创建协程用于接收服务器来的消息,同时用接收数据为0来判断服务器是否断开
func (this* Client) tcpListener()
for
msg :=make([]byte,4096)
num,err :=this.Conn.Read(msg)
if err != nil
fmt.Println("user Read err:",err)
if num==0
fmt.Println(fmt.Sprintf("server:%s device close.",this.Conn.RemoteAddr().String()))
_ = this.Conn.Close()
runtime.Goexit()
else
msgStr := string(msg[:num])
fmt.Println(msgStr)
根据与服务器的协议,发送广播消息
func (this* Client) brodCast(msg string)
_,err := this.Conn.Write([]byte("all:"+msg))
if err != nil
fmt.Println("server brodCast err:",err)
效果:
目录:
以上是关于Golang TCP客户端实现菜单显示,实现广播聊天的主要内容,如果未能解决你的问题,请参考以下文章