Estou assumindo que seu servidor (que também é seu cliente neste caso) está atrás de um roteador NAT da Internet. Se este for o caso, um firewall no Linux não é estritamente necessário. (Haverá chapeleiros de estanho que dizem que tudo precisa de um firewall bem configurado.)
A saída que você tem mostra que não há regras em vigor e, portanto, o padrão é deixar tudo passar. Então, o problema provavelmente existe em outro lugar. Comece executando o programa do servidor e, em seguida, executando
lsof | grep IP
e procurando o nome do seu programa ou a porta 10000. Se você não encontrá-lo na lista, então seu programa não conseguiu ligar um soquete a uma porta. Nesse caso, você precisa fazer mais verificação de erros no seu código em C. Se você vir o seu programa, procure um programa chamado wireshark. Executar o wireshark enquanto você executa o cliente permitirá que você veja se o seu cliente está enviando pacotes corretamente. Um filtro como (tcp.port == 10000)
deve render pelo menos metade da conversa, dependendo de como o servidor funciona.