GO tcp服务器编程 socket编程
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | //server.go package main import ( "fmt" "math/rand" "net" "strconv" ) func main(){ listener,err := net.Listen( "tcp" , ":8080" ) if err != nil { fmt.Println( "listen error:" ,err) return } for { conn,err := listener.Accept() if err != nil { fmt.Println( "accept error:" ,err) continue } go Handle(conn) } } func Handle(conn net.Conn){ go Read(conn) go Write(conn) } func Read(conn net.Conn){ a := make([]byte,100) conn.Read(a) fmt.Println( "recv data:" ,string(a)) } func Write(conn net.Conn){ b := []byte( "i am fly" + strconv.Itoa(rand.Int())) conn.Write(b) fmt.Println( "send data:" ,string(b)) }<br><br><br><br><br> //client.go package main import ( "fmt" "net" "strconv" "time" ) func main(){ i := 0 for { conn,err := net.DialTimeout( "tcp" , "127.0.0.1:8080" ,10*time.Second) if err != nil { fmt.Println( "Dial error:" ,err) return } a := make([]byte,100) conn.Read(a) fmt.Println( "read data :" ,string(a)) conn.Write([]byte( "i am client:" +strconv.Itoa(i))) i++ } } <br> |
标签:
go
, socket编程 网络编程
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律