const { app, BrowserWindow } = require('electron'); const net = require('node:net'); const path = require('node:path'); function createWindow () { const mainWindow = new BrowserWindow({ webPreferences: { nodeIntegration: true, contextIsolation: false, nodeIntegrationInSubFrames: true } }); mainWindow.loadFile('index.html'); } app.whenReady().then(() => { createWindow(); app.on('activate', () => { if (BrowserWindow.getAllWindows().length === 0) createWindow(); }); }); app.on('window-all-closed', () => { if (process.platform !== 'darwin') app.quit(); }); const server = net.createServer((c) => { console.log('client connected'); c.on('end', () => { console.log('client disconnected'); app.quit(); }); c.write('hello\r\n'); c.pipe(c); }); server.on('error', (err) => { throw err; }); const p = process.platform === 'win32' ? path.join('\\\\?\\pipe', process.cwd(), 'myctl') : '/tmp/echo.sock'; server.listen(p, () => { console.log('server bound'); });