// client.mjs import net from 'node:net'; const HOST = '192.168.2.25'; // <-- set Pico IP const PORT = 5505; function buildFrame(cmd, payload) { const len = payload.length; const frame = Buffer.alloc(3 + len); frame[0] = cmd; frame[1] = len & 0xff; // len_lo frame[2] = (len >> 8) & 0xff; // len_hi payload.copy(frame, 3); return frame; } function parseFrame(buffer) { if (buffer.length < 3) { return null; } const cmd = buffer[0]; const len = buffer[1] | (buffer[2] << 8); if (buffer.length < 3 + len) { return null; } const payload = buffer.subarray(3, 3 + len); return { cmd, payload }; } const socket = net.createConnection({ host: HOST, port: PORT }); let rxBuffer = Buffer.alloc(0); socket.on('connect', () => { const payload = Buffer.from('Test'); const frame = buildFrame(0x10, payload); socket.write(frame); }); socket.on('data', (chunk) => { rxBuffer = Buffer.concat([rxBuffer, chunk]); const frame = parseFrame(rxBuffer); if (frame) { console.log('CMD:', frame.cmd); console.log('Payload:', frame.payload.toString()); socket.end(); } }); socket.on('error', (err) => { console.error(err); });