No, non c'entra.Si, ok, ma per fare una fork() non ho bisogno dell'accept() che è solo per tcp?
Quello che tipicamente fai è mettere l'accept() all'interno di una fork o di un thread in quanto accept() è bloccante, ma questo vale per qualunque chiamata di questo tipo (bloccante).
No, utilizzando UDP "lato server" non hai più una accept() ma una unica recv()/recvfrom() che richiami di continuo la quale ti ritorna i dati ricevuti e l'indirizzo del mittente.Io avevo pensato, non so se è fattibile, di far arrivare tutti i client su di una porta del server (x es.9300) poi rispondere assegnandogli un altra porta (con una funzione random) in modo da avere una porta x ogni client, e far lavorare il server in parallelo.
Non so di preciso quale sia il tuo problema e sarà almeno 2 anni che non vedo UDP ma in genere quello che si fa con un server UDP è essenzialmente quello, quindi non credo tu abbia neanche bisogno di utilizzare fork, thread, select e compagnia.
Infatti quello che consiglio sempre è di non utilizzare C nè tanto meno lavorare con socket, fork, thread e select nativamente per fare questo genere di cose.Ti premetto che è solo un mese che utilizzo il C, e gia tirar su un client ed un server non è stato banale, per me, ma lavorando con le virtual machine non mi posso permettere java....
Un mucchio di lavoro extra che un linguaggio di più alto livello con l'ausilio di un framework di rete ti eviterebbe.