* Parse UDP recv message * @param {Buffer} payload * @returns {Object} - { srcIP, srcPort, dstIP, dstPort, data }
(payload)
| 407 | * @returns {Object} - { srcIP, srcPort, dstIP, dstPort, data } |
| 408 | */ |
| 409 | parseUdpRecv(payload) { |
| 410 | let offset = 0; |
| 411 | |
| 412 | const srcIPLen = payload[offset++]; |
| 413 | const srcIP = payload.slice(offset, offset + srcIPLen).toString('utf8'); |
| 414 | offset += srcIPLen; |
| 415 | |
| 416 | const srcPort = payload.readUInt16LE(offset); |
| 417 | offset += 2; |
| 418 | |
| 419 | const dstIPLen = payload[offset++]; |
| 420 | const dstIP = payload.slice(offset, offset + dstIPLen).toString('utf8'); |
| 421 | offset += dstIPLen; |
| 422 | |
| 423 | const dstPort = payload.readUInt16LE(offset); |
| 424 | offset += 2; |
| 425 | |
| 426 | const data = payload.slice(offset); |
| 427 | |
| 428 | return { srcIP, srcPort, dstIP, dstPort, data }; |
| 429 | } |
| 430 | |
| 431 | /** |
| 432 | * Wait for any I/O (stdin or network) |