Closed miladghasemid closed 4 years ago
Hello, I have run sample server code. OS: windows Node: v8.11.1 npm: v5.6.0
when i disconnect client from server, the following is shown and process terminates.
events.js:183 throw er; // Unhandled 'error' event ^ Error: read ECONNRESET at _errnoException (util.js:1022:11) at TCP.onread (net.js:628:25)
code:
const modbus = require('jsmodbus') const net = require('net') const netServer = new net.Server() const holding = Buffer.alloc(10000) const server = new modbus.server.TCP(netServer, { holding: holding }) server.on('connection', function (client) { console.log('New Connection') }) server.on('readCoils', function (request, response, send) { /* Implement your own */ response.body.coils[0] = true response.body.coils[1] = false send(response) }) server.on('readHoldingRegisters', function (request, response, send) { /* Implement your own */ }) server.on('preWriteSingleRegister', function (value, address) { console.log('Write Single Register') console.log('Original {register, value}: {', address, ',', server.holding.readUInt16BE(address), '}') }) server.on('WriteSingleRegister', function (value, address) { console.log('New {register, value}: {', address, ',', server.holding.readUInt16BE(address), '}') }) server.on('writeMultipleCoils', function (value) { console.log('Write multiple coils - Existing: ', value) }) server.on('postWriteMultipleCoils', function (value) { console.log('Write multiple coils - Complete: ', value) }) /* server.on('writeMultipleRegisters', function (value) { console.log('Write multiple registers - Existing: ', value) }) */ server.on('postWriteMultipleRegisters', function (value) { console.log('Write multiple registers - Complete: ', holding.readUInt16BE(0)) }) server.on('connection', function (client) { /* work with the modbus tcp client */ }) server.coils.writeUInt16BE(0x0000, 0) server.coils.writeUInt16BE(0x0000, 2) server.coils.writeUInt16BE(0x0000, 4) server.coils.writeUInt16BE(0x0000, 6) server.discrete.writeUInt16BE(0x5678, 0) server.holding.writeUInt16BE(0x0001, 0) server.holding.writeUInt16BE(0x0002, 2) server.holding.writeUInt16BE(0x0003, 4) server.holding.writeUInt16BE(0x0004, 6) server.holding.writeUInt16BE(0x0005, 8) server.holding.writeUInt16BE(0x0006, 10) server.holding.writeUInt16BE(0x0007, 12) server.holding.writeUInt16BE(0x0008, 14) server.input.writeUInt16BE(0xff00, 0) server.input.writeUInt16BE(0xff00, 2) console.log(process.argv[2]) netServer.listen(process.argv[2] || 1502)
What jsmodbus are you using?
Usually Socket Events are not handled by the module. Try catching Socket errors by subscribing to the error Events on the tcp Socket.
Hello, I have run sample server code. OS: windows Node: v8.11.1 npm: v5.6.0
when i disconnect client from server, the following is shown and process terminates.
code: