相关疑难解决方法(0)

golang UDP服务器的奇怪行为

我在go中写了一个简单的UDP服务器.

当我这样做时go run udp.go,打印我发送给它的所有包裹.但是当go run udp.go > out它运行时它会在客户端停止时停止传递stdoutout文件.

客户端是发送10k请求的简单程序.所以在文件中我有大约50%的已发送包.当我再次运行客户端时,out文件会再次增长,直到客户端脚本完成.

服务器代码:

package main

import (
  "net"

  "fmt"
)

func main() {
  addr, _ := net.ResolveUDPAddr("udp", ":2000")
  sock, _ := net.ListenUDP("udp", addr)

  i := 0
  for {
    i++
    buf := make([]byte, 1024)
    rlen, _, err := sock.ReadFromUDP(buf)
    if err != nil {
      fmt.Println(err)
    }
    fmt.Println(string(buf[0:rlen]))
    fmt.Println(i)
    //go handlePacket(buf, rlen)
  }
}
Run Code Online (Sandbox Code Playgroud)

这是客户端代码:

package main

import (
  "net"

  "fmt"
)

func main() { …
Run Code Online (Sandbox Code Playgroud)

networking udp go

9
推荐指数
1
解决办法
9882
查看次数

标签 统计

go ×1

networking ×1

udp ×1