Sì, le socket servono proprio per far comunicare due o più processi distinti e potenzialmente avviati su due computer diversi connessi alla stessa rete (e.g., connessi ad internet). Tipicamente quando si fa un applicazione client/server si assume che ci sia un server sempre avviato e tanti client che si possono connettere o disconnettere a loro piacimento.
Visto che stai parlando di un ristorante, ti rimando a
questo thread dove un altro utente stava facendo un progetto simile. Magari puoi prendere spunto da quella discussione. Se vuoi una guida sulle socket in C
Beej's Guide to Network Programming Using Internet Sockets è molto chiara, ma plausibilmente il tuo professore ti avrà passato del materiale da studiare con tutto quello che si aspetta che tu possa usare per questo progetto. Se poi dovessi avere qualche problema ne possiamo discutere.