Se la cosa si deve fare solamente tra 2 computer dovrebbe essere abbastanza semplice, altrimenti la cosa si fa più complicata.
In sostanza dovresti fare in modo che la tua applicazione presupponga a priori di essere un client. In questo modo essa tenta di effettuare la connessione come client su un ipotetico server residente sull'altra macchina (gli host sono comunque conosciuti). Se la connessione avviene correttamente significa che nell'altra macchina il programma era aperto e fungeva da server, accettando la connessione. Se la connessione non riesce (puoi intercettare questa cosa facilmente tramite le eccezioni), allora il tuo programma sa che è il primo ad essere avviato e si mette in ascolto di connessioni fungendo in questo caso da server.
Spero di averti fornito una linea guida per la soluzione al tuo problema.
ciao.![]()