udpclient.js 905 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. var kcp = require('./../build/Release/kcp');
  2. var kcpobj = new kcp.KCP(123, {address: '127.0.0.1', port: 41234});
  3. var dgram = require('dgram');
  4. var client = dgram.createSocket('udp4');
  5. var msg = JSON.stringify({
  6. id: 'test',
  7. route: 'test',
  8. body: 'test'
  9. });
  10. var idx = 1;
  11. var interval = 200;
  12. kcpobj.stream(1);
  13. kcpobj.nodelay(0, interval, 0, 0);
  14. kcpobj.output((data, size, context) => {
  15. client.send(data, 0, size, context.port, context.address);
  16. });
  17. client.on('error', (err) => {
  18. console.log(`client error:\n${err.stack}`);
  19. client.close();
  20. });
  21. client.on('message', (data, rinfo) => {
  22. kcpobj.input(data);
  23. var recv = kcpobj.recv();
  24. if (recv) {
  25. console.log(`Client recv ${recv} from ${kcpobj.context().address}:${kcpobj.context().port}`);
  26. kcpobj.send(msg+(idx++));
  27. }
  28. });
  29. setInterval(() => {
  30. kcpobj.update(Date.now());
  31. }, interval);
  32. kcpobj.send(msg);