(int max)
| 116 | } |
| 117 | |
| 118 | byte [] |
| 119 | recv(int max) throws IOException { |
| 120 | DatagramChannel channel = (DatagramChannel) key.channel(); |
| 121 | byte [] temp = new byte[max]; |
| 122 | key.interestOps(SelectionKey.OP_READ); |
| 123 | try { |
| 124 | while (!key.isReadable()) |
| 125 | blockUntil(key, endTime); |
| 126 | } |
| 127 | finally { |
| 128 | if (key.isValid()) |
| 129 | key.interestOps(0); |
| 130 | } |
| 131 | long ret = channel.read(ByteBuffer.wrap(temp)); |
| 132 | if (ret <= 0) |
| 133 | throw new EOFException(); |
| 134 | int len = (int) ret; |
| 135 | byte [] data = new byte[len]; |
| 136 | System.arraycopy(temp, 0, data, 0, len); |
| 137 | verboseLog("UDP read", channel.socket().getLocalSocketAddress(), |
| 138 | channel.socket().getRemoteSocketAddress(), data); |
| 139 | return data; |
| 140 | } |
| 141 | |
| 142 | static byte [] |
| 143 | sendrecv(SocketAddress local, SocketAddress remote, byte [] data, int max, |
no test coverage detected