PDA

View Full Version : سوال: شبکه



saeidfarahi
شنبه 24 مرداد 1388, 17:38 عصر
من یک برنامه سرور نوشتم و یک برنامه کلاینت. برنامه کلاینت وقتی راه اندازی می شه باید آدرس ip یا اسم کامپیوتری که برنامه سرور روی اون نصبه رو بدونه . من الآن فقط می تونم بطور دستی اسم کامپیوتر سرور رو بگیرم ولی می خوام که بطور خودکار برنامه ی کلاینتم اسم کامپیوتری که برنامه سرور روی اون نصبه رو بگیره. چطوری؟

Sociant
شنبه 24 مرداد 1388, 17:48 عصر
راهی مطمئنی وجود نداره

راهی که به ذهنم میرسه استفاده از multicast هست. با این حال بازم IPو Port مربوط به Multicast رو باید کلاینت بدونه ! غیر از این ، اگه کسی از این مکانیزم با خبر بشه میتونه خودشو جای سرور جا بزنه و آدرس خودشو بعنوان سرور به کلاینت بده !

اکثر جاها آدرس سرور از پیش تعیین شده

mmramezani2101
شنبه 24 مرداد 1388, 21:24 عصر
من یک برنامه سرور نوشتم و یک برنامه کلاینت. برنامه کلاینت وقتی راه اندازی می شه باید آدرس ip یا اسم کامپیوتری که برنامه سرور روی اون نصبه رو بدونه . من الآن فقط می تونم بطور دستی اسم کامپیوتر سرور رو بگیرم ولی می خوام که بطور خودکار برنامه ی کلاینتم اسم کامپیوتری که برنامه سرور روی اون نصبه رو بگیره. چطوری؟


می تونیاز رجیستری استفاده کنی و موقعه اجرای برنامه بری و بخونی اگه نبود از کاربر بپرسی و تو رجیستری بریزی دفعات بعدی که برنامه اجرا میشه رجیستری رو چک می کنه
در باره خواندن و نوشتن تو رجیستری اگه بگردی چیزهای جالبی پیدا میکند اگه نبود بگو تا آپلود کنم

navid_8x
یک شنبه 25 مرداد 1388, 01:25 صبح
لطفا بیشر در مورد چگونگی طراحی برنامت بگو.

13601360
یک شنبه 25 مرداد 1388, 01:39 صبح
دوست عزیز dll ضمیمه شده رو دانلود کنید و به References اضافه کنید
سپس از این کد نمونه استفاده کنید



using (RasDialer dialer = new RasDialer())
{
foreach (RasConnection connection in dialer.GetActiveConnections())
{
RasIPInfo info = (RasIPInfo)connection.GetProjectionInfo(RasProject ionType.IP);
if (info != null)
{
Console.WriteLine("Client: {0}", info.IPAddress.ToString());
Console.WriteLine("Server: {0}", info.ServerIPAddress.ToString());
}
}
}