go的socket案例 - 前端笔记-服务端 package main import ( fmt net ) ...

学习笔记

点滴记忆
回忆过往
首页>> web后端 >>go的socket案例 - 前端笔记
服务端
package main

import (
    "fmt"
    "net"
)

func main() {
    count := 1

    // 创建 ip
    Listener, err := net.Listen("tcp", "127.0.0.1:8088")
    if err != nil {
        fmt.Println("创建监听ip失效", err)
    }
    count++
    for true {
        fmt.Println("开始监听")

        // 监听链接  accept 会阻塞
        conn, err := Listener.Accept()
        if err != nil {
            fmt.Println("创建监听链接失效", err)
        }
        go func(conn net.Conn) {
            for {
                con := make([]byte, 1024)
                fmt.Println("持续接收数据中", count)
                // 读数据
                n, err := conn.Read(con)
                if err != nil {
                    fmt.Println("读数据失效", err)
                }
                fmt.Println("长度:", n, con[:n], count)

                name := string(con[:n]) + "刘洋"
                // 写数据
                n, err = conn.Write([]byte(name))
                if err != nil {
                    fmt.Println("写数据失效", err)
                }
                fmt.Println("长度:", n, name, count)
            }

            // 关闭连接
            conn.Close()
        }(conn)
    }

}




客户端
package main

import (
    "fmt"
    "net"
    "time"
)

func main() {
    conn, err := net.Dial("tcp", "127.0.0.1:8088")
    if err != nil {
        fmt.Println("链接失败")
    }

    str := []byte("liuYang")
    for true {

        n, err := conn.Write(str)
        if err != nil {
            fmt.Println("发送数据失败")
        }
        fmt.Println(n, "发生的长度")

        buf := make([]byte, 1024)
        n, err = conn.Read(buf)
        if err != nil {
            fmt.Println("接收数据失败")
        }
        fmt.Println(n, "接收的长度")
        time.Sleep(1 * time.Second)
    }

    conn.Close()
}






×

感谢您的支持,我们会一直保持!

扫码支持
请土豪扫码随意打赏

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

打赏作者
版权所有,转载注意明处:前端笔记 » go的socket案例

发表评论

路人甲 表情
Ctrl+Enter快速提交

网友评论(0)