beh, si, direi che il problema è probabilmente il firewall a questo punto

se non ti funziona può essere solo perché non passa la comunicazione

il programma in C mi sembra scritto seguendo lo standard posix, non vedo api di windows, quindi sta su linux (o alternativamente magari gira su windows compilato con le mingw)

controlla il firewall, se è windows lo disabiliti temporaneamente e via, mentre se la macchina su cui gira tutto è linux lancia un iptables -L come root e guarda se la policy di default è di bloccare i pacchetti in ingresso o ci stanno regole che ti bloccano il passaggio dei pacchetti tranne che per certe specifiche porte