Commit 800c568d authored by Ferreira Da Silva, Rafael's avatar Ferreira Da Silva, Rafael
Browse files

adding data stream sender

parent d3c2492a
Loading
Loading
Loading
Loading

sender.py

0 → 100644
+41 −0
Original line number Diff line number Diff line
import numpy as np
import zmq
import time
import json

aryinit = np.load("../data/p_322_data_np_res_32.npy")
print('Array contains {} elements'.format(aryinit.size))

md = dict(dtype=str(aryinit.dtype), shape=aryinit.shape)

context = zmq.Context()
pubsocket = context.socket(zmq.PUB)
pubsocket.bind("tcp://*:5555")

sigsocket = context.socket(zmq.REP)
sigsocket.bind("tcp://*:5556")

time.sleep(1)  # Allow time for socket setup
msg = sigsocket.recv()
sigsocket.send(b'')

print('Synchronized; ready to send data')

metadata_str = json.dumps(md)
pubsocket.send_string("metadata", flags=zmq.SNDMORE)
pubsocket.send_string(metadata_str)

chunk_size = 100
total_chunks = len(aryinit) // chunk_size + (1 if len(aryinit) % chunk_size else 0)

for i in range(total_chunks):
    start = i * chunk_size
    end = start + chunk_size
    pubsocket.send_string("data", flags=zmq.SNDMORE)
    pubsocket.send(aryinit[start:end], flags=0)
    print(f"Sent chunk from index {start} to {end}")

pubsocket.send_string("END", flags=zmq.SNDMORE)
pubsocket.send(b"")
print("Sent all elements")
time.sleep(1)