聊天

package main

import (
    "net"
    "fmt"
)


func main() {
    listen,err := net.Listen("tcp",":8080")
    if err != nil {
        fmt.Println("监听端口失败:",err)
        return
    }
    fmt.Println("已初始化,等待客户端连接...")

    for {
        conn,err := listen.Accept()
        if err != nil {
            fmt.Println("接收客户端连接异常:",err)
            continue
        }
        fmt.Println("接收客户端连接正常!")
        fmt.Println("已接入:",conn.RemoteAddr().String())
        defer conn.Close()

        go func() {
            data := make([]byte,1024)
            for {
                i,err := conn.Read(data)
                if err != nil {
                    fmt.Println("读取客户端数据错误:",err)
                }
                fmt.Println("客户端发来数据:",data[:i])
                fmt.Println("正在处理为可读模式...")
                fmt.Println("数据为:",string(data[:i]))

                resp := make([]byte,128)
                fmt.Scan(&resp)
                conn.Write(resp)

            }
        }()
    }
}
package main

import (
    "net"
    "fmt"
)

func main() {
    conn,err := net.Dial("tcp",":8080")
    if err != nil {
        fmt.Println("连接服务器失败:",err)
    }
    fmt.Println("yi连接服务器")
    defer conn.Close()

    msg := make([]byte,1024)
    for {
        fmt.Println("请输入要发送的信息:")
        _,err := fmt.Scan(&msg)
        if err != nil {
            fmt.Println("输入异常:",err)
        }
        _,err = conn.Write(msg)
        if err != nil {
            fmt.Println("数据发送失败:",err)
            fmt.Println(`请选择下一步操作:
1.重新发送
2.退出
3.break
                    `)
            var ch int
            _,err := fmt.Scan(&ch)
            if err != nil {
                fmt.Println("输入异常:",err)
            }
            switch ch {
            case 1:

            case 2:
                return
            case 3:
                break
            default:
                fmt.Println("输入错误")
            }
        }


        buf := make([]byte,128)
        c,err := conn.Read(buf)
        if err != nil {
            fmt.Println("读取服务器数据异常:",err)
            return
        }


        fmt.Println("服务器返回数据为:",string(buf[:c]))
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值