Skip to content

Instantly share code, notes, and snippets.

@gmalysa
Created July 19, 2019 05:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gmalysa/67da5320692983f927078b7250a0fab6 to your computer and use it in GitHub Desktop.
Save gmalysa/67da5320692983f927078b7250a0fab6 to your computer and use it in GitHub Desktop.
#include <zmq.h>
int main(void) {
void *context = zmq_ctx_new();
void *sock = zmq_socket(context, ZMQ_REQ);
zmq_connect(sock, "tcp://localhost:5999");
while (1) {
char response[10];
zmq_send(sock, "hi", 2, 0);
zmq_recv(sock, response, 10, 0);
}
return 0;
}
#lang racket
(require zeromq)
(define router (zmq-socket 'router #:bind "tcp://*:5999"))
(define dealer (zmq-socket 'dealer #:bind "inproc://test"))
(define (proxy-loop left right)
(define msg (zmq-recv* left))
(zmq-send* right msg)
(proxy-loop left right))
(thread (λ () (proxy-loop router dealer)))
(thread (λ () (proxy-loop dealer router)))
(define worker (zmq-socket 'rep #:connect "inproc://test"))
(define (worker-loop)
(define msg (zmq-recv* worker))
(zmq-send* worker msg)
(print ".")
(worker-loop))
(worker-loop)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment