GO UDP消息接收冻结

时间:2015-04-11 11:53:10

标签: go udp

我正在尝试编写一个使用GO通过UDP进行通信的简单程序。它应该具有主/从架构,因此我希望主机每秒发送一次“活”信号十次。由于我也希望主设备监听来自从设备的消息,因此我使用receive功能启动了goroutine。在测试中我只使用一台计算机,因此它唯一接收的是它自己的活动信号。然而,在收到大约20条消息后,程序冻结了。我试过运行程序只发送消息,它不会冻结。这是接收函数:

func receive(conn *net.UDPConn){
  //Receive message from network
  received := make([]byte,1024)
  for ; true ; {
    _, _, _ = conn.ReadFromUDP(received)
    println("Motatt: ", string(received))
    go receiveMessage(string(received))
  }
}

函数receiveMessage()只是一个读取它收到的消息的函数。

我想知道的是,GO中是否存在导致冻结的设置或其他内容?据我所知,由于有接收消息,所以不能是截止日期错误。

0 个答案:

没有答案