نمایش نتایج 1 تا 13 از 13

نام تاپیک: کد دلفی برای انتقال فایل با استفاده از iIdTCPClient , IdTCPServer به روش مستقیم بین دو کلاینت

  1. #1
    محروم شده
    تاریخ عضویت
    شهریور 1394
    پست
    6

    Question کد دلفی برای انتقال فایل با استفاده از iIdTCPClient , IdTCPServer به روش مستقیم بین دو کلاینت

    باسلام
    یکی از کاربردهای کامپوننت IdTCPClient, IdTCPServer ارسال فایل بین کلاینت و سرور میباشد
    سوال اینجاست که اگر بخواهیم بین دو کلاینت تبادل فایل انجام دهیم دو روش وجود دارد
    1- ارسال فایل از کلاینت اول به سرور و سپس ارسال فایل از سرور به کلاینت دوم
    2- ارسال فایل از کلاینت اول به کلاینت دوم بصورت مستقیم

    درخواست : برنامه نویسی به زبان دلفی برای انتقال فایل به روش 2 میباشد یعنی انتقال مستقیم یک فایل از کلاینت اول به کلاینت دوم
    نکته:در این روش سرور فقط باید به عنوان یک ایجاد کننده کانال بین دو کلاینت عمل کرده و فایل در این کانال بین دو کلاینت منتقل شود.
    با تشکر

  2. #2

    نقل قول: کد دلفی برای انتقال فایل با استفاده از iIdTCPClient , IdTCPServer به روش مستقیم بین دو کلا

    من مشکل شمارو متوجه نشدم.
    دقیقا نیاز دارید چه کاری انجام بدهید؟
    همه زبانهای برنامه نویسی اعم از دلفی امکان ارسال و دریافت فایل به هر روشی رو دارند.

  3. #3
    محروم شده
    تاریخ عضویت
    شهریور 1394
    پست
    6

    نقل قول: کد دلفی برای انتقال فایل با استفاده از iIdTCPClient , IdTCPServer به روش مستقیم بین دو کلا

    در نرم افزارهای چت یکی از قابلیتها ارسال فایل بین کاربران میباشد
    بیشتر نمونه کدهایی که من پیدا کردم همگی ارسال فایل از کاربر به سرور یا برعکس از سرور به کاربر میباشد
    در این روش سه مشکل وجود دارد:
    1- سرعت ارسال نصف میباشد زیرا یکبار فایل از کاربر یک به سرور و سپس ارسال مجدد همان فایل از سرور به کاربر دو میباشد
    2- ارسال فایل بصورت هم زمان نمیباشد یعنی مثلا ارسال یک فایل حجیم زمان زیادی برای ارسال به سرور نیاز دارد
    3- پهنای باند زیادی از سرور اشغال کرده و عملا در حجم زیاد ،تبادل فایل بین کاربران و سرور با مشکل پردازش و پهنای باند برخورد میکند
    من از نظر تئوری میدانم که وقتی یک کاربر با سرور ارتباط برقرار میکند یک پورت بین کاربر و سرور ایجاد میشود . حال اگر کاربر دیگر بتواند به این پورت دسترسی پیدا کند دیگر نیاز به دخالت سرور نبوده و میتوان از کانال بصورت مستقیم استفاده نمود.
    درخواست من کد نویسی برای ارسال فایل بین دو کاربر چت بدون درگیر شدن سرور میباشد
    باتشکر

  4. #4

    نقل قول: کد دلفی برای انتقال فایل با استفاده از iIdTCPClient , IdTCPServer به روش مستقیم بین دو کلا

    برنامه ای که مد نظر شماست، قراره بر روی اینترنت کار کنه ، یا شبکه محلی؟
    درخواست من کد نویسی برای ارسال فایل بین دو کاربر چت بدون درگیر شدن سرور میباشد
    برای کد ، تا دلت بخاد تو نت و همین بخش موجوده، فقط باید تحقیق و سرچ کنید.

  5. #5
    محروم شده
    تاریخ عضویت
    شهریور 1394
    پست
    6

    نقل قول: کد دلفی برای انتقال فایل با استفاده از iIdTCPClient , IdTCPServer به روش مستقیم بین دو کلا

    کاربرها بر روی اینترنت بوده و هیچکدام ای پی ولید نمیباشند.
    سرچهای بسیاری زدم ولی همگی روش ارسال به سرور را توضیح داده اند.
    لطفا اگر کدی سراغ دارید که ارسال فایل به روش کلاینت به کلاینت را توضیح داده معرفی کنید.

  6. #6

    نقل قول: کد دلفی برای انتقال فایل با استفاده از iIdTCPClient , IdTCPServer به روش مستقیم بین دو کلا

    بهترین و استیبلترین روش همون استفاده از سرور میانجی هست.
    چون کاربرها پشت Nat هستند و دسترسی بهشون به صورت مستقیم مقدور نیست.
    اما اگه اصرار به اتصال دو کاربر به یکدیگر با ای پی اینولید داشته باشید 2 راه فعلا در خاطرم هست (شاید راههای دیگه ای باشه. فعلا حضور ذهن ندارم) :
    1- استفاده از UDP : در صورتی که ISP شما Broadcasting Udp رو نبسته باشه.
    2- استفاده از Port Forwarding در مودم ADSL یا روتر.
    و..
    موفق باشید.

  7. #7
    محروم شده
    تاریخ عضویت
    شهریور 1394
    پست
    6

    نقل قول: کد دلفی برای انتقال فایل با استفاده از iIdTCPClient , IdTCPServer به روش مستقیم بین دو کلا

    بنظر شما یک نرم افزار چت با قابلیت ارسال فایل باید کاربر را درگیر محدودیتهای isp و یا منوط به تنظیمات خاص در مودم کند؟
    آیا در نرم افزارهای عمومی چت منطقی است که یک سرور با پهنای باند محدود درگیر کلیه سند و ریسیو فایلهای کاربران شود؟
    برای مثال نرم افزار TeamViewer سرورها و پهنای باند خود را درگیر ارسال فایلهای کاربران کرده یا اینکه از کانال ارتباطی دو کاربر استفاده میکند؟
    اگر روشی باشد که سرور اجازه استفاده از پورت باز شده بر روی کلاینت را موقتا به کلاینت دیگر واگذار کند و یا هر دو بطور هم زمان از این پورت استفاده نمایند احتمالا مشکل برطرف خواهد شد
    در این روش سرور باید سوکت اختصاصی خود بر روی کاربر گیرنده فایل را به کاربر ارسال کننده بدهد و بصورت مجازی کاربر فرستنده نقش سرور را ایفا کرده و پس از اتمام ارسال این امکان از او گرفته شود.و سرور فقط نقش مدیریت این اختصاص و قطع آن را بعهده گیرد.
    در هر صورت لازمه یک نرم افزار چت امکان ارسال فایل با سرعت مناسب ، بلادرنگ و حداقل پردازش و مصرف پهنای باند کم برای سرور میباشد.
    منتظر ارائه راه حلهای مناسب هستم
    با تشکر

  8. #8
    محروم شده
    تاریخ عضویت
    شهریور 1394
    پست
    6

    نقل قول: کد دلفی برای انتقال فایل با استفاده از iIdTCPClient , IdTCPServer به روش مستقیم بین دو کلا

    من فکر می کنم ایجاد یک کانال ( channel ) بین دو کاربر کار پیچیده ای نباشد
    همنطور که این کانال بین سرور و یک کاربر پشت نت بوجود اومده میتونه بین دو کاربر با مدیریت سرور نیز بوجود بیاد .
    در ارتباط بین یک کاربر با ای پی غیر ولید با سرور کانالی که شامل ای پی مودم و پورتی که توسط مودم اختصاص یافته به کاربر ایجاد میشود .
    حال اگر این ای پی و پورت اختصاصی در اختیار کاربر دوم قرار گیرد میتواند کاربر دوم اطلاعات مورد نظر را از طریق آن به کاربر یک ارسال نماید.
    به همین سادگی.
    متاسفانه اطلاعات من در زمینه لایه های پایین شبکه و کد نویسی برای آن کم میباشد و از دوستان اگر کسی در این زمینه اطلاعات کافی دارد شاید بتواند این مشکل را حل کند.
    با تشکر از پی گیری Mask

  9. #9
    کاربر دائمی آواتار ابوالفضل عباسی
    تاریخ عضویت
    شهریور 1393
    محل زندگی
    Inside Esfahan
    پست
    719

    نقل قول: کد دلفی برای انتقال فایل با استفاده از iIdTCPClient , IdTCPServer به روش مستقیم بین دو کلا

    من هم خیلی مشتاقم ببینم روش ساده تری که این delphi pro نیازداره وجود دارد یا نه
    یعنی کسی نیست در این زمینه کمک کنه؟

  10. #10

    نقل قول: کد دلفی برای انتقال فایل با استفاده از iIdTCPClient , IdTCPServer به روش مستقیم بین دو کلا

    نقل قول نوشته شده توسط ابوالفضل عباسی مشاهده تاپیک
    من هم خیلی مشتاقم ببینم روش ساده تری که این delphi pro نیازداره وجود دارد یا نه
    یعنی کسی نیست در این زمینه کمک کنه؟
    اگه وجود داشت، سران اینترنت از روشهایی که من توضیح دادم استفاده نمیکردند.

  11. #11
    کاربر دائمی آواتار ابوالفضل عباسی
    تاریخ عضویت
    شهریور 1393
    محل زندگی
    Inside Esfahan
    پست
    719

    نقل قول: کد دلفی برای انتقال فایل با استفاده از iIdTCPClient , IdTCPServer به روش مستقیم بین دو کلا

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

  12. #12

    نقل قول: کد دلفی برای انتقال فایل با استفاده از iIdTCPClient , IdTCPServer به روش مستقیم بین دو کلا

    درخواست من کد نویسی برای ارسال فایل بین دو کاربر چت بدون درگیر شدن سرور میباشد
    اگر روشی باشد که سرور اجازه استفاده از پورت باز شده بر روی کلاینت را موقتا به کلاینت دیگر واگذار کند و یا هر دو بطور هم زمان از این پورت استفاده نمایند احتمالا مشکل برطرف خواهد شد
    بهش میگن UDP hole punching؛ این روش برای دور زدن محدودیت استفاده از NAT توسط کاربران مبداء و مقصد استفاده میشه. در این روش یک سرور وظیفه میانجیگری برقراری ارتباط بین دو کاربر را بازی میکنه، و بعد از برقراری ارتباط بین دو کاربر، سرور از مدار خارج میشه. یکی از معروف ترین نرم افزارهایی که از این روش برای برقراری ارتباط Peer-to-Peer و دور زدن NAT استفاده میکنه، پیام رسان Skype هست.


    وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
    و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.

  13. #13

    نقل قول: کد دلفی برای انتقال فایل با استفاده از iIdTCPClient , IdTCPServer به روش مستقیم بین دو کلا

    نقل قول نوشته شده توسط vcldeveloper مشاهده تاپیک
    بهش میگن UDP hole punching؛ این روش برای دور زدن محدودیت استفاده از NAT توسط کاربران مبداء و مقصد استفاده میشه. در این روش یک سرور وظیفه میانجیگری برقراری ارتباط بین دو کاربر را بازی میکنه، و بعد از برقراری ارتباط بین دو کاربر، سرور از مدار خارج میشه. یکی از معروف ترین نرم افزارهایی که از این روش برای برقراری ارتباط Peer-to-Peer و دور زدن NAT استفاده میکنه، پیام رسان Skype هست.
    یا الله. رسیدن بخیر برادر
    این روش در برخی از isp ها مسدود است.

تاپیک های مشابه

  1. برنامه ای برای انتقال فایل
    نوشته شده توسط am_sanatiz در بخش برنامه نویسی در Delphi
    پاسخ: 8
    آخرین پست: پنج شنبه 30 اردیبهشت 1395, 11:55 صبح
  2. اسکریپت برای انتقال فایل از سروری به سرور دیگر
    نوشته شده توسط هواشناس در بخش Classic ASP
    پاسخ: 0
    آخرین پست: پنج شنبه 17 دی 1388, 12:23 عصر
  3. بهترین و امن ترین راه برای انتقال فایل بین سروری
    نوشته شده توسط shahab_ksh در بخش ASP.NET Web Forms
    پاسخ: 0
    آخرین پست: یک شنبه 29 دی 1387, 17:28 عصر
  4. کمک برای فرستادن فایل با استفاده از socket
    نوشته شده توسط Parsa_2006 در بخش WCF , Web Services , .Net Remoting
    پاسخ: 1
    آخرین پست: یک شنبه 09 دی 1386, 12:41 عصر
  5. برنامه ای برای انتقال فایل
    نوشته شده توسط am_sanatiz در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 1
    آخرین پست: سه شنبه 23 خرداد 1385, 10:13 صبح

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •