Skip to content

Instantly share code, notes, and snippets.

@eddieantonio
Created March 30, 2017 20:43
Show Gist options
  • Save eddieantonio/e17a3e8a093c2e84090a35a9bd2c83d0 to your computer and use it in GitHub Desktop.
Save eddieantonio/e17a3e8a093c2e84090a35a9bd2c83d0 to your computer and use it in GitHub Desktop.

Revisions

  1. eddieantonio created this gist Mar 30, 2017.
    19 changes: 19 additions & 0 deletions example.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,19 @@
    #!/usr/bin/env python3
    # -*- coding: UTF-8 -*-

    import socket
    import json

    server_address = '/tmp/example.sock'

    sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
    sock.connect(server_address)

    msg = json.dumps({"ping": "hello"}).encode('UTF-8')
    sock.send(msg)
    sock.send(b"\r\n")

    data = sock.recv(256)
    print(data.decode('UTF-8'))

    sock.close()
    29 changes: 29 additions & 0 deletions socket.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,29 @@
    var net = require('net');

    var server = net.createServer(client => {
    const chunks = [];
    console.log(`client connected`);
    client.setEncoding('utf8');

    client.on('end', () => {
    console.log('client disconnected');
    });


    client.on('data', chunk => {
    console.log(`Got data: ${chunk}`);
    chunks.push(chunk)

    if (chunk.match(/\r\n$/)) {
    const {ping} = JSON.parse(chunks.join(''));
    client.write(JSON.stringify({pong: ping}));
    }
    });
    });

    server.on('listening', () => {
    console.log(`Server listening`);
    });
    server.listen('/tmp/example.sock');

    /*eslint no-console: false*/