PDA

View Full Version : برنامه نویسی سوکت(اتنخاب کارت شبکه)



ice007
دوشنبه 28 آبان 1386, 16:13 عصر
من دارم یه برنامه می نویسم که توش از socket ها برای ارسال اطلاعات بین کامپیوتر ها استفاده کردم و می دونید برای تبادل اطلاعات باید ip کامپیوتر ها رو داشت در حالت عادی مشکلی ندارم مشکل وقتی که دو کارت شبکه روی سیستم نصب باشه و هر کارت هم یک ip جداگانه دارد حالا چطور بفهمم با کدوم کارت به کدوم کامپیوتر وصلم حالا اگه اینو فهمیدم چطور به دات نت تو برنامم بگم با کدوم کارت عمل اتصال رو انجام بده؟

hadi2345
سه شنبه 29 آبان 1386, 14:03 عصر
این کار در لایه شبکه خود به خود انجام میگیرد یعنی شما در لایه چهارم برنامه مینویسید و لایه شبکه لایه سوم است در ضمن در سوکت پروگرمینگ شما آدرس مقصد و پورت را انتخواب میکنید
من متوجه منظور شما نمی شوم

ice007
چهارشنبه 30 آبان 1386, 09:04 صبح
بله حق با شماست ولی من مشکلم رو ظاهرا درست بیان نکردم این سناریو زیر رو در نظر بگیرید:
من از کامپیوتر 1 که دو تا ip داره به کامپیوتر 2 که ip اونو دارم یه پیغام می خوام بدم و در این پیغام می خوام ip کامپیوتر 1 رو هم بدم که کامپیوتر 2 به من با اون ip پیغام بده حالا مشکل من اینه که کدام یک از دو ip که در کامپیوتر 1 دارم مال اون کارتی که به کامپیوتر 2 وصله؟ یعنی کدوم ip رو بفرستم؟

hadi2345
چهارشنبه 30 آبان 1386, 12:33 عصر
در باره subnet mask و geteway کمی تحقیق کنید
subnet mask آن چهار ip را برسی کنید

alireza_s_84
جمعه 29 آبان 1388, 23:10 عصر
بله حق با شماست ولی من مشکلم رو ظاهرا درست بیان نکردم این سناریو زیر رو در نظر بگیرید:
من از کامپیوتر 1 که دو تا ip داره به کامپیوتر 2 که ip اونو دارم یه پیغام می خوام بدم و در این پیغام می خوام ip کامپیوتر 1 رو هم بدم که کامپیوتر 2 به من با اون ip پیغام بده حالا مشکل من اینه که کدام یک از دو ip که در کامپیوتر 1 دارم مال اون کارتی که به کامپیوتر 2 وصله؟ یعنی کدوم ip رو بفرستم؟
شما میتونید IP کلاینتی که Accept کردین رو مثل زیر بدست بیارید نیازی به ارسال IP کامپیوتر 1 به کامپیوتر 2 نیست.

String ClientIP = ((IPEndPoint)_Client.Client.RemoteEndPoint).Addres s.ToString();
_Client میشه کلاینتی که Accept کردین.
موفق باشید