我在go中写了一个简单的UDP服务器.
当我这样做时go run udp.go,打印我发送给它的所有包裹.但是当go run udp.go > out它运行时它会在客户端停止时停止传递stdout给out文件.
客户端是发送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)