Blog: 2025-02-23
Jump to navigation
Jump to search
Fun with the gcc compiler and linker
hack $ gcc-14 -L /usr/local/lib/ -I /usr/local/include/ -Wall -Werror -l zmq hwserver.c -o hwserver hack $ ./hwserver
Some sockets with the zmq
-- hwclient.lua local zmq = require "zmq" local context = zmq.init(1) local socket = context:socket(zmq.REQ) socket:connect("tcp://localhost:5555") for n=1, 10 do print("Sending Hello " .. n .. "...") socket:send("HIIII -lua") local reply = socket:recv() print("Received " .. n .. " [" .. reply .. "]") end socket:close() context:term()
// hwclient.c #include <zmq.h> #include <string.h> #include <stdio.h> #include <unistd.h> int main() { printf("Connecting to hello world server...\n"); void *context = zmq_ctx_new(); void *requester = zmq_socket(context, ZMQ_REQ); zmq_connect(requester, "tcp://localhost:5555"); int request_nbr; char outgoing[8]; for (request_nbr = 0; request_nbr < 10; request_nbr++) { char buffer[10]; printf("Sending Hello %d...\n", request_nbr); sprintf(outgoing, "Hello %d", request_nbr); zmq_send(requester, outgoing, 10, 0); zmq_recv(requester, buffer, 10, 0); printf("Received World %d\n", request_nbr); } zmq_close(requester); zmq_ctx_destroy(context); return 0; }
// hwserver.c #include <zmq.h> #include <stdio.h> #include <unistd.h> #include <string.h> #include <assert.h> int main() { void *context = zmq_ctx_new(); void *responder = zmq_socket(context, ZMQ_REP); int rc = zmq_bind(responder, "tcp://*:5555"); assert (rc == 0); while (1) { char buffer[10]; zmq_recv(responder, buffer, 10, 0); printf("received %s\n", buffer); sleep(1); zmq_send(responder, "world", 5, 0); } return 0; }
and in ~/.profile
:
export LUA_CPATH="/usr/local/lib/lua/5.4/?.so;$HOME/.luarocks/lib/lua/5.4/?.so"
Links: