PDA

View Full Version : درخواست روش یا ابزار برای برنامه نویسی P2P



pbm_soy
دوشنبه 11 اسفند 1393, 01:50 صبح
سلام

میخواهم یک برنامه چت P2P در بستر اینترنت بنویسم (باقابلیتهای ارسال و دریافت فایل و غیره) چه روشی یا ابزاری را پیشنهاد میکنید؟ آیا از کامپوننتها و ابزارهای موجود استفاده کنم؟

یک توضیح مختصر درمورد این برنامه میدهم
* کاربر پس از ورود بتواند لیست افراد آنلاین را مشاهده کند و بتواند یکی از آنها را انتخاب کند برای گفتگو و یا ارسال متن (قاعدتا این مرحله میتواند از یک وب سرویس کمک بگیرد)
* ارسال و دریافت متن قاعدتا بدون واسطه باید باشد (P2P) درواقع سوکت بین این دو کاربر باید باز شود

مشکل عمده ای که پیش می آید این است که خیلی از کاربران اینترنت آی پی واقعی ندارند (Valid IP) و بیشتر آی پی آنها آی پی داخلی است (یعنی ارتباط این کاربران با اینترنت از طریق یک پراکسی و یا یک روتر است) مثلا کاربرانی که ADSL دارند مودم ADSL کار NAT و Rout کردن را انجام میدهد. یعنی فقط مودم ADSL آی پی واقعی دارد نه کاربران متصل به آن.
در اینصورت این کاربران از راه دور قابل مشاهده و یا اتصال مستقیم نیستند ولی برعکس این کاربران میتوانند کاربرانی که آی پی واقعی دارند را ببینند و اتصال برقرار کنند
* اگر بخواهیم این ارتباط دو طرفه باشد فکر میکنم دوراه بیشتر ندارم یکی این که از روش NAT Traversal استفاده کنم و یا از یک سرور واسطه بعنوان رله کننده بسته ها استفاده کنم

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

با توجه به جستجوهایی که انجام دادم
* JXTA یک فریم ورک برای اینکار است که همه موارد فوق را برطرف میکند
* qp2p هم مانند مورد فوق است ولی نتوانستم API آنرا پیدا کنم!
* ابزارهای مختلف دیگری هم برای NAT Traversal وجود دارند

از دوستان کسی هست در این باره تجربه داشته باشه و من را راهنمائی کند
درصورت امکان دنبال روش و یا ابزاری هستم که بتوانم کار را سریع و با کمترین پیچیدگی انجام دهم