golang

go随机数

我们在通过go获取随机数时,会发现每次获取的均一致,如下面的程序,无论执行多少次,打印的结果均是81、87、47、59 for i := 0; i < 40; i++ { println(rand.Intn(100)) } 81 87 47 59 这是因为在默认情况下,go的rand会使用相同的源来产生一个确定的伪随机数序列,即产生一个不变的数列。 由于源代码已经发布到 Go 的官方标准库中,因此任何运行此程序的计算机都会得到相同的结果。 但是,由于 Go

  • 凯文
1 min read
golang

golang之udpConn

golang进行UDP client/server通讯的过程中发现Read/ReadFromUDP/Write/WriteToUDP的使用,还有connection/unconnection较乱。 代码实验 UDP server UDP服务器端在调用”net.ListenUDP()“后创建”net.UDPConn”,read/write操作是通过这个UDPConn来完成的。因为listen的时候只指定了本地绑定的地址,它只能被动的接收来自客户端的消息,因此这个UDPConn在golang中为’unconnected’类型的。 这种类型的UDPConn的读操作可以接受Read()及ReadFromUDP()。区别是Read()无法知道远程连接的地址信息而ReadFromUDP()可以,所以如果后续需要跟远程进行双向通讯需要使用ReadFromUDP()。 这种类型的UDPConn在进行写操作时必须使用WriteToUDP()完成,并且需要指定对方的地址信息。

  • 凯文
3 min read