Golang TCP客户端实现用户改名以及私聊
Posted 卑微的小李
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Golang TCP客户端实现用户改名以及私聊相关的知识,希望对你有一定的参考价值。
通过嵌套循环实现用户选择操作
for {
switch flag {
case 1:
println("输入发送内容,发送end 回到上级目录")
var msg string
fmt.Scanln(&msg)
for msg != "end" {
client.brodCast(msg)
fmt.Scanln(&msg)
}
case 2:
client.getUserList()
println("输入用户名称,发送end 回到上级目录")
var toUser string
fmt.Scanln(&toUser)
if toUser != "end" {
println("输入发送内容,发送end 回到上级目录")
var msg string
fmt.Scanln(&msg)
for msg != "end" {
client.msg2User(toUser,msg)
fmt.Scanln(&msg)
}
}
case 3:
println("输入用户名称,发送end 回到上级目录")
var rename string
fmt.Scanln(&rename)
if rename != "end" {
client.rename(rename)
}
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)
}
根据与服务器的协议,发送广播消息
func (this* Client) msg2User(user string,msg string) {
_,err := this.Conn.Write([]byte("to|"+user+"|"+msg))
if err != nil {
fmt.Println("server brodCast err:",err)
}
}
func (this* Client) rename(name string) {
_,err := this.Conn.Write([]byte("rename|"+name))
if err != nil {
fmt.Println("server brodCast err:",err)
}
}
func (this* Client) getUserList() {
_,err := this.Conn.Write([]byte("who:"))
if err != nil {
fmt.Println("server brodCast err:",err)
}
}
效果:
目录:
以上是关于Golang TCP客户端实现用户改名以及私聊的主要内容,如果未能解决你的问题,请参考以下文章
Golang TCP服务器用户修改名字查询用户在线以及私聊功能