IM-System版本0.9.3实现client更新用户名命令

This commit is contained in:
wandoubaba 2024-11-27 15:26:18 +08:00
parent 2cb4cd4120
commit ce1502d59c

View File

@ -4,7 +4,9 @@ package main
import ( import (
"flag" "flag"
"fmt" "fmt"
"io"
"net" "net"
"os"
) )
type Client struct { type Client struct {
@ -51,6 +53,19 @@ func (client *Client) menu() bool {
} }
} }
// client的更新用户名接口
func (client *Client) UpdateName() bool {
fmt.Println(">>>>>> 请输入新用户名:")
fmt.Scanln(&client.Name)
sendMsg := "rename|" + client.Name + "\n"
_, err := client.conn.Write([]byte(sendMsg))
if err != nil {
fmt.Println("conn.Write err:", err)
return false
}
return true
}
func (client *Client) Run() { func (client *Client) Run() {
for client.flag != 0 { for client.flag != 0 {
for !client.menu() { for !client.menu() {
@ -67,10 +82,17 @@ func (client *Client) Run() {
case 3: case 3:
// 更新用户名 // 更新用户名
fmt.Println("已选择更新用户名模式...") fmt.Println("已选择更新用户名模式...")
client.UpdateName()
} }
} }
} }
// 处理server回应的消息直接显示到标准输出
func (client *Client) DealResponse() {
// 一旦client.conn有数据就直接copy到stdout标准输出上永久阻塞监听
io.Copy(os.Stdout, client.conn)
}
// 定义全局变量 // 定义全局变量
var serverIp string var serverIp string
@ -95,6 +117,9 @@ func main() {
} }
fmt.Println(">>>>>> 连接服务器成功……") fmt.Println(">>>>>> 连接服务器成功……")
// 单独开启一个goroutine去处理server发送的消息
go client.DealResponse()
// for { // for {
// time.Sleep(1 * time.Second) // time.Sleep(1 * time.Second)
// } // }