加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

一个极其简单的用golang net写的tcpip echoserver

发布时间:2020-12-16 18:36:32 所属栏目:大数据 来源:网络整理
导读:一个极其简单的用golang net写的tcpip echoserver 关键字:linux golang tcpip echoserver 虽然然效率不是很理想,但是可以给初学者参考 package main import ( "fmt" "net" "os" "runtime" ) func doEcho(c net.Conn) { defer c.Close() for { buf := make(

一个极其简单的用golang net写的tcpip echoserver

关键字:linux golang tcpip echoserver

虽然然效率不是很理想,但是可以给初学者参考

package main

import (
"fmt"
"net"
"os"
"runtime"
)

func doEcho(c net.Conn) {
defer c.Close()
for {
buf := make([]byte,4096)
n,err := c.Read(buf[:])
if n == 0 || err != nil {
return
}
c.Write(buf[0:n])
}
}

func doStart(host string) {
if host == "" {
fmt.Println("Press input host name")
return
}
fmt.Println("Listening:" + host)
ln,err := net.Listen("tcp",host)
if err != nil {
fmt.Printf("Listen Error:")
return
}
defer ln.Close()

for {
c,err := ln.Accept()
if err != nil {
continue
}
doEcho(c)
}
}

func main() { fmt.Println("CPU Num:",runtime.NumCPU()) runtime.GOMAXPROCS(runtime.NumCPU()) doStart(os.Args[1]) }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读