Mam obecnie skonfigurowany serwer TCP, który może akceptować połączenie od klienta i wywoływać echo bez względu na to, co klient wprowadza. W jaki sposób chciałbym, aby wielu klientów łączyło się z serwerem i wysyłało dane wejściowe do wszystkich klientów?Jak mogę akceptować wielu klientów do serwera TCP?
Wydaje mam widelec, ale nie jestem całkowicie pewien, w jaki sposób ...
Na serwerze należy umieścić nieskończoną pętlę począwszy od zaakceptować (lub słuchać?), Który będzie bulić, gdy istnieje nowe połączenie? Następnie na proces potomny musiałbym zamknąć gniazdo z poprzedniego procesu i połączyć się z nowym, ale jeszcze raz nie jestem w pełni pewien.
Jak wyglądałby pseudo kod pod względem manipulacji widełkami i gniazdami? Zgaduję:
while(1) //before connection or accept?
pid = fork()
if(pid==0)
// open socket from client
// run the rest of the code
// end process when client disconnects
else
// close socket from client