我正在尝试在进程之间建立UDP网络,在这些进程中,它们不断共享消息。我需要知道某个进程是否有待接收的消息。如果没有,当我调用DatagramSocket.receive()函数时会发生什么?程序是否会停止等待消息,否则它将忽略此功能? 我不知道我是否足够清楚,或者甚至在正确的方向思考,所以任何提示都会有所帮助。
提前致谢。
答案 0 :(得分:0)
答案 1 :(得分:0)
以下内容来自oracle API(http://docs.oracle.com/javase/7/docs/api/java/net/DatagramSocket.html#receive(java.net.DatagramPacket))
从此套接字接收数据报包。当此方法返回时,DatagramPacket的缓冲区将填充接收的数据。数据报包还包含发送方的IP地址和发送方机器上的端口号。
此方法将一直阻止,直到收到数据报为止。数据报包对象的长度字段包含接收消息的长度。如果消息长于数据包的长度,则消息将被截断。
如果有安全管理器,如果安全管理器的checkAccept方法不允许,则无法接收数据包。