http://searchnetworking.techtarget.com/definition/time-to-live
Из этой статьи я запутался в определении об этой теме.есть ли шанс, что кто-нибудь поможет мне лучше понять, что происходит?
stav.
----------------------------------
РЕДАКТИРОВАТЬ:
Я пытался отправить себе массаж с того же компьютера.когда я устанавливаю значение TTL в 0, посылка, которую я посылаю, все равно попадает ко мне.это почему?вот код:
кстати, эта строка в методе отправки.
server.SetSocketOption(SocketOptionLevel.IP,
SocketOptionName.MulticastTimeToLive, 0);
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
class MAIN
{
public static MulticastOption MulticastOption;
private static MulticastOption CreateGroup()
{
MulticastOption = new MulticastOption(IPAddress.Parse("224.100.0.1"));
return MulticastOption;
}
private static void Receive()
{
Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
IPEndPoint iep = new IPEndPoint(IPAddress.Any, 9050);
EndPoint ep = (EndPoint)iep;
sock.Bind(iep);
sock.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, MulticastOption);
//
byte[] data = new byte[1024];
new Thread(new ThreadStart(Send)).Start();
int recv = sock.ReceiveFrom(data, ref ep);
String stringData = Encoding.ASCII.GetString(data, 0, recv);
Console.WriteLine("received: {0} from: {1}", stringData, ep.ToString());
sock.Close();
}
private static void Send()
{
Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
IPEndPoint iep = new IPEndPoint(IPAddress.Any, 9051);
IPEndPoint iep2 = new IPEndPoint(IPAddress.Parse("224.100.0.1"), 9050);
server.Bind(iep);
server.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, new MulticastOption(IPAddress.Parse("224.100.0.1")));
server.SetSocketOption(SocketOptionLevel.IP,SocketOptionName.MulticastTimeToLive, 0);
server.SendTo(Encoding.ASCII.GetBytes("This is a test message"), iep2);
server.Close();
}
public static void Main(String[] args)
{
CreateGroup();
Receive();
Console.ReadKey();
}
}