Tento dotaz neni uplne technicky ale spise teoreticky.
V zasade jde o asynchronni socketovou komunikaci typu client server
zaklady jsou jasne na clientovy vytvorim listener ktery ceka na zpravu od serveru
string hostName = Dns.GetHostName();
IPAddress[] ipHostInfo = Dns.GetHostEntry(hostName).AddressList;
IPEndPoint localEndPoint = new IPEndPoint(ipHostInfo[0], port);
Socket listener = new Socket(ipHostInfo[0].AddressFamily, SocketType.Stream, ProtocolType.Tcp);
try
{
Console.WriteLine("Cekani na spojeni ...");
listener.Bind(localEndPoint);
listener.Listen(100);
while (!isCancellationRequested)
{
// Set the event to nonsignaled state.
allDone.Reset();
listener.BeginAccept(new AsyncCallback(AcceptCallback), listener);
allDone.WaitOne(100);
}
}
a cely problem je v te promene ipHostInfo kde pro endpoint pouzivam vlastne tu prvni nalezenou z indexu 0. v celem seznamu jsou IPV4 a IPV6 adresy a navic jsou tam adresy od vsechch moznych NETInterface, neboli jejich tam mnoho. Otazka zni jak postavit listener tak aby kdyz server zakomunikuje na IP treba z indexu 4