go实现tcp通讯

1.客户端代码

复制代码
package main

import (
    "bufio"
    "fmt"
    "net"
    "os"
    "strings"
)

func main(){
    conn,err:= net.Dial("tcp","127.0.0.1:8890")
    if err != nil {
        fmt.Println("is erro")
    }
    reader:= bufio.NewReader(os.Stdin)
    fmt.Printf("%v,\n","请写入内容")
    for {
        text,_:=reader.ReadString('\n')
        text = strings.TrimSpace(text)
        if text == "exit" {
            break
        }
        conn.Write([]byte(text))

    }
    conn.Close()
}
复制代码

2.服务端代码

复制代码
package main

import (
    "bufio"
    "fmt"
    "io"
    "net"
)

func process(conn net.Conn){
    defer conn.Close()
    var buf[1024]byte
    reader:=bufio.NewReader(conn)
    for {
        n,err:=reader.Read(buf[:])
        if err  == io.EOF {
            break
        }
        if err != nil {
            return
        }
        recvStr:= string(buf[:n])
        fmt.Printf("收到的数据为:%v\n",recvStr)
    }
}

func main(){
    listener,err:=net.Listen("tcp","127.0.0.1:8890")
    if err != nil {
        fmt.Println("start server is erros")
        return
    }
    for {
        conn,_:= listener.Accept()
        go process(conn)
    }
    defer listener.Close()
}
复制代码

 

posted on   孤灯引路人  阅读(235)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示