صفحه 1 از 3 123 آخرآخر
نمایش نتایج 1 تا 40 از 103

نام تاپیک: همه چیز درباره Indy

  1. #1
    کاربر دائمی آواتار Gladiator
    تاریخ عضویت
    بهمن 1381
    پست
    1,699
    تشکر کردن
    0
    125 بار تشکر شده در 65 پست

    همه چیز درباره Indy

    با سلام ؛

    در مرحله اول آور ویویی بر کار سرورها و کلاینتها خواهیم داشت .

    کلاینت :

    کلاینت به این شکل به سرور متصل میشه :

    with IndyClient do begin
    Host := 'IndyServer.Barnamenevis.org';

    آدرس سروری که میبایست به آن متصل شد .
    Port := 6000;

    شماره پورتی که کلاینت باید به آن متصل شود .
    Connect; Try

    اقدام جهت برقراری ارتباط .
    finally Disconnect; end;

    و در نهایت قطع ارتباط
    end;
    تو مثل شهر کوچیک من هنوز برام خاطره سازی ، هنوزم قبله معصوم نمازی



  2. 4 کاربر از Gladiator به خاطر این مطلب مفید تشکر کرده اند:


  3. #2
    کاربر دائمی آواتار Gladiator
    تاریخ عضویت
    بهمن 1381
    پست
    1,699
    تشکر کردن
    0
    125 بار تشکر شده در 65 پست
    توضیحات درباره کلاینت ؛

    کاری که کلاینت انجام میده اینه که جهت برقراری ارتباط آدرسی رو بعنوان Host Name ( که میتونه هم آدرس آی پی باشه و هم نام دی ان اسی ) و شماره ای رو بعنوان Port دریافت میکنه و بر اساس این 2 مشخصه توی شبکه بدنبال سرور میگرده و پس از پیدا کردن سرور اگر اجازه ورود داشته باشه به سرور متصل میشه .
    تو مثل شهر کوچیک من هنوز برام خاطره سازی ، هنوزم قبله معصوم نمازی



  4. کاربرانی که به خاطر مطلب مفید Gladiator از وی تشکر کرده‌اند:


  5. #3
    کاربر دائمی آواتار Gladiator
    تاریخ عضویت
    بهمن 1381
    پست
    1,699
    تشکر کردن
    0
    125 بار تشکر شده در 65 پست
    سرور :

    سرور ایندی بعد از فعال شدن در شبکه منتظر درخواستها میماند ٬ سرور به همه تقاضا ها گوش میکند و هر کدام را که مجاز به ورود باشد قبول میکند . سرور پس از قبول تقاضای کلاینت ٬ درون خود سرنخی ( Thread ) ایجاد میکند و امور مربوط به این اتصال را به آن قسمت هدایت میکند .

    در تصویر پیوست نمایی از فعالیت سرور را میبینید .
    تو مثل شهر کوچیک من هنوز برام خاطره سازی ، هنوزم قبله معصوم نمازی



  6. کاربرانی که به خاطر مطلب مفید Gladiator از وی تشکر کرده‌اند:


  7. #4
    مدیر کل سایت آواتار vcldeveloper
    تاریخ عضویت
    بهمن 1382
    پست
    13,921
    تشکر کردن
    1,363
    9,064 بار تشکر شده در 4,746 پست
    :flower:
    امیدوارم ادامه داشته باشه!

    انشاء الله!


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

  8. #5
    کاربر دائمی آواتار Gladiator
    تاریخ عضویت
    بهمن 1381
    پست
    1,699
    تشکر کردن
    0
    125 بار تشکر شده در 65 پست
    مدلهای برنامه نویسی برای سوکتها :

    در برنامه نویسی سوکتها برای ویندوز دو مدل برنامه نویسی داریم ٬ یکی Blocking و دیگری Non-Blocking . گاهی اوقات این دو مدل سنکرون و آسنکرون هم خوانده میشوند .

    synchronous به معنای همزمان
    asynchronous به معنای غیر همزمان


    تعداد اندکی مدلهای برنامه نویسی دیگری نیز موجود است که به دلیل نیاز به کد نویسی و داشتن اطلاعات بیشتر برای برنامه نویسی ابزارهای پیشرفته رزرو شده اند .
    تو مثل شهر کوچیک من هنوز برام خاطره سازی ، هنوزم قبله معصوم نمازی



  9. #6
    کاربر دائمی
    تاریخ عضویت
    خرداد 1382
    محل زندگی
    l8026070@yahoo.com
    پست
    282
    تشکر کردن
    0
    0 بار تشکر شده در 0 پست
    با سلام
    با تشکر ادامه بدید :flower: :flower: :flower: :wink:
    سید S.A.L

  10. #7
    کاربر دائمی آواتار Gladiator
    تاریخ عضویت
    بهمن 1381
    پست
    1,699
    تشکر کردن
    0
    125 بار تشکر شده در 65 پست
    Blocking :

    ایندی از روش Blocking Socket Calls استفاده میکند ٬ عملکرد این روش دقیقا مشابه خواندن و نوشتن در فایلهاست . وقتی که شما اطلاعات را میخوانید و یا اینکه اطلاعات را مینویسید توابع تا پایان کار بازگردانده نمیشوند .

    تفاوت کار فایلها و سوکتها در اینه که اطلاعات ممکنه در مورد سوکتها زمان بیشتری رو جهت بهره بری نیاز داشته باشه در صورتی که در فایلها این عمل خیلی سریع انجام میشه ٬ در کار با سوکتها ممکنه اطلاعات بی درنگ و بی وقفه آماده خواندن و نوشتن نباشه ٬ سرعت خواندن و نوشتن اطلاعات به نوع ارتباط شبکه ( سرعت انتقال اطلاعات ) بستگی داره .

    ایندی ٬ برای برقراری ارتباط یک درخواست ارسال میشود و منتظر جواب میماند . اگر ارتباط برقرار شد پیامی بر مبنای برقراری ارتباط ارسال میگردد ( پس از برقراری ارتباط ) و در صورتی که ارتباط برقرار نشد پیام مناسبی را ارسال میکند .
    تو مثل شهر کوچیک من هنوز برام خاطره سازی ، هنوزم قبله معصوم نمازی



  11. 3 کاربر از Gladiator به خاطر این مطلب مفید تشکر کرده اند:


  12. #8
    کاربر دائمی آواتار Gladiator
    تاریخ عضویت
    بهمن 1381
    پست
    1,699
    تشکر کردن
    0
    125 بار تشکر شده در 65 پست
    Non Blocking :

    این روش بر مبنای رویدادها کار میکنه ٬ در این روش شما نیاز دارید که برای رویدادهای مختلف کد نویسی کنید . مثلا ٬ موقعی که شما اقدام به برقراری ارتباط میکنید ٬ شما باید متد اتصال را فراخوانی کنید ٬ متد اتصال بی درنگ قبل از اتصال سوکت برگردانده میشود . وقتی سوکت متصل شد رویداد جدیدی رخ میدهد .

    منطق این روش نیازمند اجرای پروسه های زیادی است .
    تو مثل شهر کوچیک من هنوز برام خاطره سازی ، هنوزم قبله معصوم نمازی



  13. 2 کاربر از Gladiator به خاطر این مطلب مفید تشکر کرده اند:


  14. #9
    VIP آواتار hr110
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    ایران - تهران
    پست
    1,460
    تشکر کردن
    112
    363 بار تشکر شده در 123 پست
    :flower: :kiss:
    اگه ممکنه در مورد threadهای سمت سرور هم کمی توضیح بدهید، توضیح در مورد اینکه چگونه این کار انجام میشود و چطور میتوان آن را پیاده نموده
    ... چه بگویم که غم از دل برود چون تو بیایی

  15. #10
    کاربر دائمی
    تاریخ عضویت
    دی 1382
    محل زندگی
    پشت كامپيوتر
    پست
    379
    تشکر کردن
    14
    46 بار تشکر شده در 14 پست
    خیلی جالب شد
    لطفا یک مثال کوچک همراه با توضیح بیاورید :flower:
    *برای صعود از کوه نیاز به تیم و هم گروهی است*



  16. #11
    کاربر دائمی آواتار Gladiator
    تاریخ عضویت
    بهمن 1381
    پست
    1,699
    تشکر کردن
    0
    125 بار تشکر شده در 65 پست
    نقل قول نوشته شده توسط hr110
    :flower: :kiss:
    اگه ممکنه در مورد threadهای سمت سرور هم کمی توضیح بدهید، توضیح در مورد اینکه چگونه این کار انجام میشود و چطور میتوان آن را پیاده نموده
    با سلام ؛

    چشم آقای ربیعی به اون قسمت هم خواهیم رسید ٬ در مورد مثال هم در انتهای کار یک برنامه چت ساده مینویسم و سورسش رو در اختیارتون قرار میدم .
    تو مثل شهر کوچیک من هنوز برام خاطره سازی ، هنوزم قبله معصوم نمازی



  17. #12
    کاربر دائمی
    تاریخ عضویت
    دی 1382
    محل زندگی
    پشت كامپيوتر
    پست
    379
    تشکر کردن
    14
    46 بار تشکر شده در 14 پست
    بابا دمت گرم تو دیگه کی هستی بابا تو دیگه کی هستی ....
    موفق باشی دوست عزیز :flower:
    *برای صعود از کوه نیاز به تیم و هم گروهی است*



  18. #13
    کاربر دائمی آواتار Gladiator
    تاریخ عضویت
    بهمن 1381
    پست
    1,699
    تشکر کردن
    0
    125 بار تشکر شده در 65 پست
    مشکل Freeze در کلاینتها :

    در روش برنامه نویسی Blocking تماسها پس از کامل شدن کارشان پاسخ بازگشتی نمیدهند . وقتی چنین تماسهایی در Thread اصلی برنامه ساخته میشوند ٬ برنامه نمیتواند به درخواست کاربر پاسخ دهد و به این ترتیب سبب میشود برنامه به حالت Freeze در آید .

    Freeze به این علت صورت میگیرد که پیامهای جدید و پیامهای جدید شده ( بروز شده ) تا زمانی که پاسخ تماسهای سوکتهای بلاکینگ ( بعد از انجام کار ) به کنترل رسیدگی کننده برنامه نرسد نمیتوانند پیشرفتی داشته باشند .
    تو مثل شهر کوچیک من هنوز برام خاطره سازی ، هنوزم قبله معصوم نمازی



  19. 2 کاربر از Gladiator به خاطر این مطلب مفید تشکر کرده اند:


  20. #14
    کاربر دائمی آواتار Gladiator
    تاریخ عضویت
    بهمن 1381
    پست
    1,699
    تشکر کردن
    0
    125 بار تشکر شده در 65 پست
    حل مشکل Freeze شدن کلاینتها :

    در مجموعه کامپوننتهای ایندی کامپوننت ویژه ای موجود است به نام TIdAntiFreeze که مشکل Freeze برنامه های شما رو خیلی راحت حل میکنه .

    وجود تنها یک کامپوننت TIdAntiFreeze به شما این امکان را میدهد تا تماسهای نوع بلاکینگ را بدون مشکل Freeze شدن در Thread اصلی برنامه داشته باشید .

    استفاده از یک کامپوننت TIdAntiFreeze برای برنامه های مبنی بر بلاکینگ سوکت مفید است و به شدت توصیه میگردد .
    تو مثل شهر کوچیک من هنوز برام خاطره سازی ، هنوزم قبله معصوم نمازی



  21. 2 کاربر از Gladiator به خاطر این مطلب مفید تشکر کرده اند:


  22. #15
    کاربر دائمی آواتار Gladiator
    تاریخ عضویت
    بهمن 1381
    پست
    1,699
    تشکر کردن
    0
    125 بار تشکر شده در 65 پست
    Non Blocking مشکل Freeze را ندارد :

    در مدل برنامه نویسی Non Blocking ویندوز کنترل کاملی بر رویدادها دارد از این رو ویندوز حتی میتواند همزمان به پیامهای دیگری هم پاسخ دهد .

    در مدل برنامه نویسی Non Blocking یک Thread میتواند با سوکتهای زیادی سروکار داشته باشد . وقتی که نیازی به Thread ها جهت کار با تعداد سوکتهای زیاد نداشته باشیم میزان استفاده از منابع حافظه و پردازنده نیز کاهش میابد .
    تو مثل شهر کوچیک من هنوز برام خاطره سازی ، هنوزم قبله معصوم نمازی



  23. 3 کاربر از Gladiator به خاطر این مطلب مفید تشکر کرده اند:


  24. #16
    کاربر دائمی آواتار jirjirakk
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    wwwroot
    پست
    660
    تشکر کردن
    58
    15 بار تشکر شده در 15 پست
    گلادیاتور جان ناز نفست :: کار واقعا باحالی رو شروع کردی :)
    میشه یه توضیح هم بدی از هر کدوم از این دو روش چه موقعی باید استفاده کنیم، یا اینکه کدوم روش بهتر هستش :flower:

    :heart:
    موفقیت در سادگی است

  25. کاربرانی که به خاطر مطلب مفید jirjirakk از وی تشکر کرده‌اند:


  26. #17
    کاربر دائمی آواتار Gladiator
    تاریخ عضویت
    بهمن 1381
    پست
    1,699
    تشکر کردن
    0
    125 بار تشکر شده در 65 پست
    مثال عملی :

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

    در ادامه برای بهتر عنوان کردن مطالب مثالی را در مورد نحوه کار کردن مدل برنامه نویسی Blocking و Non Blocking بروی فایلها عنوان می کنم .

    و اما مثال :

    در ذیل روش باز کردن ٬ نوشتن اطلاعات و سرانجام بستن فایلی را از طریق دو مدل برنامه نویسی Blocking و Non Blocking را توضیح میدهیم .

    ابتدا یک متغیر رشته ای تعریف میکنیم و مقداری را به آن میدهیم .

    procedure TForm1.Button1Click(Sender: TObject);
    var
    s: string;
    begin
    s := 'Welcome To Barnamenevis.org , Stay and Enjoy' + #13#10;


    حالا اقدام به ایجاد و باز کردن فایل میکنیم .

    try
    with TFileStream.Create('c:\Barnamenevis\test.d at', fmCreate) do try


    در این مرحله نوبت نوشتن اطلاعات در فایل است .

    WriteBuffer(s[1], Length(s));


    و در آخر فایل را میبندیم .

    finally Free; end;
    end;
    end;


    این مثالی کوچک بر مدل برنامه نویسی Blocking بود ٬ همانطور که ملاحظه میفرمایید در مدل برنامه نویسی بلاکینگ کل کد نویسی در یک محل و پشت سر هم قرار دارد . ( در این مثال در رویداد OnClick مربوط به ‌Button1 صورت گرفت ) .
    تو مثل شهر کوچیک من هنوز برام خاطره سازی ، هنوزم قبله معصوم نمازی



  27. 2 کاربر از Gladiator به خاطر این مطلب مفید تشکر کرده اند:


  28. #18
    کاربر دائمی آواتار Gladiator
    تاریخ عضویت
    بهمن 1381
    پست
    1,699
    تشکر کردن
    0
    125 بار تشکر شده در 65 پست
    حالا برای انجام همان کار در مدل برنامه نویسی Non Blocking به این شکل عمل میکنیم :

    در این مثال بصورت خیالی File1 را کامپوننت فایل Non Blocking در نظر گرفته ایم .

    در ابتدا فرض را بر این میگذاریم که کامپوننت File1 را بروی فرم قرار داده ایم ٬ برای شروع فایلی را که در مثال قبلی ایجاد کرده بودیم را باز میکنیم .

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    File1.Filename := 'c:\Barnamenevis\test.dat';
    File1.Open;
    end;


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

    procedure TForm1.File1OnOpen(Sender: TObject);
    var
    i: integer;
    begin
    FWriteData := 'Hello Mehdi Keramati , I am not a bad guy' + #13#10;
    i := File1.Write(FWriteData);
    Delete(FWriteData, 1, i);
    end;


    در سومین قدم موقعی که اطلاعات در فایل نوشته شد فایل را میبندیم .

    procedure TForm1.File1OnWrite(Sender: TObject);
    var
    i: integer;
    begin
    i := File1.Write(FWriteData);
    Delete(FWriteData, 1, i);
    if Length(FWriteData) = 0 then begin
    File1.Close;
    end;
    end;


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

    procedure TForm1.File1OnClose(Sender: TObject);
    begin
    Button1.Enabled := True;
    end;


    ما در حقیقت هیچ گونه شی نوشتن فایل Non Blocking نداریم اما اگر همچین چیزی وجود داشت کد ما شبیه به کدی میشد که در مثال فوق به آن اشاره شد .
    تو مثل شهر کوچیک من هنوز برام خاطره سازی ، هنوزم قبله معصوم نمازی



  29. #19
    کاربر دائمی آواتار Gladiator
    تاریخ عضویت
    بهمن 1381
    پست
    1,699
    تشکر کردن
    0
    125 بار تشکر شده در 65 پست
    لازم میدونم یک سری توضیحات کوتاهی رو در مورد مثال دوم بنویسم .

    اول اینکه شما باید به نحوه کار و کد نویسی دقت کنید و این مدل برنامه نویسی رو درک کنید ٬ هر لحظه که تصمیم گرفتید برنامه نویسی مدل Non Blocking را شروع کنید آنگاه متوجه خواهید شد که این مثال ساده و کوتاه چقدر میتواند مفید باشد .

    مرحله اول :
    رویداد Button1Click فایل را صدا زد و آن را باز نمود . تا موقع بازگرداندن متد Open فایل باز نشده و هنوز غیر قابل دسترسی است .

    مرحله دوم :
    رویداد OnOpen موقعی اعمال میشود که فایل باز شده و آماده دسترسی است . سعی در نوشتن در فایل میشود ولی همه اطلاعات ممکن است قابل قبول نباشد در این هنگام متد Write مقدار بایت قابل قبول برای نوشتن را بازمیگرداند ٬ اطلاعات ذخیره میشند ولی دوباره بعدا چک میشوند .

    مرحله سوم :
    رویداد OnWrite موقعی اعمال میشود که فایل آماده نوشتن اطلاعات بیشتر است و متد Write دوباره برای دریافت باقیمانده اطلاعات کوشش میکند .

    مرحله سوم تا زمانی که همه اطلاعات مورد قبول متد Write قرار گیرد دائما تکرار میشود ٬ موقعی که همه اطلاعات مورد قبول متد Write واقع شد متد Close فراخوانی میشود ولی فایل هنوز بسته نشده است .

    وقتی رویداد OnClose اعمال میشود فایل دگر بسته شده است .
    تو مثل شهر کوچیک من هنوز برام خاطره سازی ، هنوزم قبله معصوم نمازی



  30. کاربرانی که به خاطر مطلب مفید Gladiator از وی تشکر کرده‌اند:


  31. #20
    کاربر دائمی آواتار Gladiator
    تاریخ عضویت
    بهمن 1381
    پست
    1,699
    تشکر کردن
    0
    125 بار تشکر شده در 65 پست
    در ادامه جهت معرفی دو کامپوننت IdTcpServer و IdTcpClient از مجموعه کامپوننتهای Indy نمونه برنامه ای را ارائه خواهم کرد و سپس مرحله به مرحله بروی برنامه به معرفی کامپوننتها خواهیم پرداخت .
    تو مثل شهر کوچیک من هنوز برام خاطره سازی ، هنوزم قبله معصوم نمازی



  32. #21
    مدیر کل سایت آواتار vcldeveloper
    تاریخ عضویت
    بهمن 1382
    پست
    13,921
    تشکر کردن
    1,363
    9,064 بار تشکر شده در 4,746 پست
    آقای گلادیاتور...مرسی :flower:


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

  33. #22
    کاربر دائمی آواتار Gladiator
    تاریخ عضویت
    بهمن 1381
    پست
    1,699
    تشکر کردن
    0
    125 بار تشکر شده در 65 پست
    با سلام مجدد ؛

    برای ادامه یکی از مقالات سایت Delphi.About.com رو ترجمه میکنم و پیرو اون بحث رو ادامه میدیم البته از این به بعد عملی .
    تو مثل شهر کوچیک من هنوز برام خاطره سازی ، هنوزم قبله معصوم نمازی



  34. #23
    کاربر دائمی آواتار Gladiator
    تاریخ عضویت
    بهمن 1381
    پست
    1,699
    تشکر کردن
    0
    125 بار تشکر شده در 65 پست
    در این مرحله میخوایم برنامه ای رو بصورت سرور / کلاینت بنویسیم که از طریق این برنامه بتونیم از روی کامپیوترهایی که برنامه کلاینت بروی اونها در حال اجراست Screen Shot هایی رو تهیه کنیم و به سرور ارسال کنیم .

    حالا اول من برنامه رو آماده میکنم بعد اینجا قرارش میدم تا شما سورسش رو دانلود کنید .
    تو مثل شهر کوچیک من هنوز برام خاطره سازی ، هنوزم قبله معصوم نمازی



  35. کاربرانی که به خاطر مطلب مفید Gladiator از وی تشکر کرده‌اند:


  36. #24
    کاربر دائمی آواتار Mahdi_S_T
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    خراسان رضوی
    پست
    1,028
    تشکر کردن
    13
    23 بار تشکر شده در 18 پست
    قبلا من در مورد برنامه کافی نت از جناب gladiator راهنمایی خواستم . ظاهرا این تاپیک جواب خوبی برای من است . از زحمات جنابعالی کمال تشکر را دارم :flower: :heart:

  37. #25
    کاربر دائمی آواتار jirjirakk
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    wwwroot
    پست
    660
    تشکر کردن
    58
    15 بار تشکر شده در 15 پست
    گلادیاتور جان منم این کارو قبلا انجام دادم و سورسش و اینجا قرار میدم
    موفقیت در سادگی است

  38. #26
    کاربر دائمی آواتار Mahdi_S_T
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    خراسان رضوی
    پست
    1,028
    تشکر کردن
    13
    23 بار تشکر شده در 18 پست
    چی شد ؟ دیگه خبری نیست !!؟

  39. #27
    کاربر دائمی آواتار Gladiator
    تاریخ عضویت
    بهمن 1381
    پست
    1,699
    تشکر کردن
    0
    125 بار تشکر شده در 65 پست
    چی شد ؟ دیگه خبری نیست !!؟
    توی تعطیلات نوروز ادامه میدم این بحث رو ...

    :flower:
    تو مثل شهر کوچیک من هنوز برام خاطره سازی ، هنوزم قبله معصوم نمازی



  40. #28
    کاربر دائمی آواتار Gladiator
    تاریخ عضویت
    بهمن 1381
    پست
    1,699
    تشکر کردن
    0
    125 بار تشکر شده در 65 پست
    یک نمونه برنامه برای ارسال Email برای یکی از دوستان درست کردم ٬ همین باعث شد که تصمیم بگیرم این بحث رو ادامه بدم . همون برنامه رو اینجا قرار میدم تا بقیه دوستان هم استفاده کنند .

    توضیحاتش رو الان مینویسم .
    تو مثل شهر کوچیک من هنوز برام خاطره سازی ، هنوزم قبله معصوم نمازی



  41. کاربرانی که به خاطر مطلب مفید Gladiator از وی تشکر کرده‌اند:


  42. #29
    کاربر دائمی آواتار Gladiator
    تاریخ عضویت
    بهمن 1381
    پست
    1,699
    تشکر کردن
    0
    125 بار تشکر شده در 65 پست
    if SMTP.Connected=false then begin
    SMTP.Host:='mail.barnamenevis.org';
    SMTP.Port:=25;
    SMTP.Username:='MySMTPMailAccount';
    SMTP.Password:='MySMTPMailPassword';
    SMTP.Connect;
    MyMessage.Body.Text:=Memo1.Text;
    MyMessage.From.Address:='Gladiator@Barnamenevi s.org';
    MyMessage.Recipients.EMailAddresses:=edit1.Tex t;
    MyMessage.Subject:=edit2.Text;
    TIdAttachment.Create(MyMessage.MessageParts,Op enDialog1.FileName);
    SMTP.Send(MyMessage);
    end
    else
    begin
    MyMessage.Body.Text:=Memo1.Text;
    MyMessage.From.Address:='Gladiator@barnamenevi s.org';
    MyMessage.Recipients.EMailAddresses:=edit1.Tex t;
    MyMessage.Subject:=edit2.Text;
    TIdAttachment.Create(MyMessage.MessageParts,Op enDialog1.FileName);
    SMTP.Send(MyMessage);
    end;


    ابتدا باید کامپوننت IdSMTP رو setup کنیم ٬ برای اینکار به شکل ذیل عمل میکنیم :

    IdSMTP.Host:='YourHostname or IPAddress';

    IdSMTP.Port:=25;


    دوستان توجه کنید پراپرتی Host همون آدرس سروریه که شما ازش اکانت SMTP دارید . میتونید نام دی ان اسی و یا آدرس ای پی اون رو برای این پراپرتی ست کنید .
    پراپرتی دیگه ای که در این قسمت داریم Port که باید حتما مقدار صحیح رو ست کنید ٬ معمولا عدد 25 شماره پورت SMTP تعریف میشه .

    ادامه دارد .
    تو مثل شهر کوچیک من هنوز برام خاطره سازی ، هنوزم قبله معصوم نمازی



  43. #30
    کاربر دائمی آواتار Gladiator
    تاریخ عضویت
    بهمن 1381
    پست
    1,699
    تشکر کردن
    0
    125 بار تشکر شده در 65 پست
    IdSMTP.Username:='MyUsername';

    در این قسمت خودتون رو به سرور معرفی میکنید .

    IdSMTP.Password:='MyPassword';

    و این هم رمز عبور شما برای متصل شدن به سرور .

    IdSMTP.Connect;

    حالا سعی میکنیم که به سرور متصل بشیم ٬ در این قسمت میتونیم TimeOut رو هم مشخص کنیم .

    تا اینجا ملزومات برقراری اتصال به SMTP Server رو فراهم کردیم ٬ حالا میتونیم بدنه Email رو Setup کنیم .
    تو مثل شهر کوچیک من هنوز برام خاطره سازی ، هنوزم قبله معصوم نمازی



  44. #31
    کاربر دائمی آواتار Gladiator
    تاریخ عضویت
    بهمن 1381
    پست
    1,699
    تشکر کردن
    0
    125 بار تشکر شده در 65 پست
      MyMessage.Body.Text:=Memo1.Text; 
    MyMessage.From.Address:='Gladiator@barnamenevi s.org';
    MyMessage.Recipients.EMailAddresses:=edit1.Tex t;
    MyMessage.Subject:=edit2.Text;
    TIdAttachment.Create(MyMessage.MessageParts,Op enDialog1.FileName);
    SMTP.Send(MyMessage);


    برای ارسال نامه الکترونیک از طریق ایندی شما به یک کامپوننت TidMessage نیاز دارید ٬ به واسطه این کامپوننت شما میتونید بدنه نامه رو بسازید و بعد از طریق TidSMTP ارسال کنید .

    در کد فوق من کامپوننت TidMessage رو به MyMessage تغییر نام دادم و همچنین TidSMTP رو به SMTP .

    MyMessage.Body.Text:=Memo1.Text;

    ابتدا متن نامه رو از طریق یک Memo میگیریم .

    MyMessage.From.Address:='Gladiator@barnamenevi  s.org';

    براش مشخص میکنیم که نامه از طرف چه کسی ارسال شده .

    MyMessage.Recipients.EMailAddresses:=edit1.Tex  t; 

    مشخص میکنیم که نامه به چه آدرس یا آدرسهایی باید ارسال بشه .

    MyMessage.Subject:=edit2.Text;

    عنوان نامه رو مشخص میکنیم .

    تا اینجا بدنه نامه الکترونیک رو هم Setup کردیم . اگر نیاز دارید که همراه این نامه یک فایل ضمیمه نیز ارسال کنید ٬ کافیه مسیر فایل مورد نظر رو مشخص کنید و به شکل ذیل عمل کنید :

    TIdAttachment.Create(TidMessage.MessageParts,O  penDialog1.FileName); 


    TidAttachment به شما این امکان رو میده که به همراه پیام یک فایل رو هم ارسال کنید .

    حالا نوبت به ارسال Email میرسه :

    TidSMTP.Send(IdMessage);
    تو مثل شهر کوچیک من هنوز برام خاطره سازی ، هنوزم قبله معصوم نمازی



  45. #32
    کاربر دائمی آواتار Gladiator
    تاریخ عضویت
    بهمن 1381
    پست
    1,699
    تشکر کردن
    0
    125 بار تشکر شده در 65 پست
    توجه داشته باشید که ارسال نامه های الکترونیک به این روش بسیار ساده و کاراست .

    حالا بر میگردیم به اصل مطلب ٬ مهمترین کامپوننتهایی که در مجموعه کامپوننتهای ایندی مشاهده میشه ( البته هر کامپوننتی برای کاری ساخته شده ) TidTCPClient و TidTCPServer هستند .

    با هم نمونه برنامه ای که برای این منظور نوشتم رو بررسی میکنیم و این بحث رو به پایان میرسونیم .
    تو مثل شهر کوچیک من هنوز برام خاطره سازی ، هنوزم قبله معصوم نمازی



  46. 2 کاربر از Gladiator به خاطر این مطلب مفید تشکر کرده اند:


  47. #33
    کاربر دائمی آواتار Delphi Skyline
    تاریخ عضویت
    دی 1383
    محل زندگی
    شیراز
    پست
    1,175
    تشکر کردن
    236
    133 بار تشکر شده در 69 پست
    آقای gladiator من یدونه کامپیوتر دارم (Windows XP Media Editon 2005) و نمی خوام serverم تحت اینترنت باشه . آیا می شه من تو کامپیوترم یک Server درست کنم برای خودم . و حتی یک client . یعنی من هم بشم کاربر و هم Admin و بعد هم می خوام دیتابیسی باشه (With ACCESS) . بای (البته اینا برای یادگیری بود)

  48. #34
    کاربر دائمی آواتار Gladiator
    تاریخ عضویت
    بهمن 1381
    پست
    1,699
    تشکر کردن
    0
    125 بار تشکر شده در 65 پست
    من دقیقا متوجه نشدم که چی میخوای !

    در مورد سرور و کلاینت بروی یک کامپیوتر ٬ بله هیچ مشکلی نیست ٬ کافیه Host رو برابر با 127.0.0.1 قرار بدی .

    در مورد Database هم متوجه نشدم منظورت چیه .
    تو مثل شهر کوچیک من هنوز برام خاطره سازی ، هنوزم قبله معصوم نمازی



  49. #35
    کاربر دائمی آواتار Delphi Skyline
    تاریخ عضویت
    دی 1383
    محل زندگی
    شیراز
    پست
    1,175
    تشکر کردن
    236
    133 بار تشکر شده در 69 پست
    خوب بعد نام server یا همان server name رو چی بزنم .
    و بعد چه طوری یک user براش تعریف کنم ؟

  50. #36
    کاربر دائمی آواتار Delphi Skyline
    تاریخ عضویت
    دی 1383
    محل زندگی
    شیراز
    پست
    1,175
    تشکر کردن
    236
    133 بار تشکر شده در 69 پست
    راسی آقای gladiator در مورد idsmtp . من هر وقت می خوام باهش کاننکت بشم error می زنه . ایمیلم هم با yahoo می زنم .

  51. #37
    کاربر دائمی آواتار Gladiator
    تاریخ عضویت
    بهمن 1381
    پست
    1,699
    تشکر کردن
    0
    125 بار تشکر شده در 65 پست
    یکبار از اول همه مطالب رو بخون متوجه میشی .
    تو مثل شهر کوچیک من هنوز برام خاطره سازی ، هنوزم قبله معصوم نمازی



  52. #38
    مدیر کل سایت آواتار vcldeveloper
    تاریخ عضویت
    بهمن 1382
    پست
    13,921
    تشکر کردن
    1,363
    9,064 بار تشکر شده در 4,746 پست
    راسی آقای gladiator در مورد idsmtp . من هر وقت می خوام باهش کاننکت بشم error می زنه . ایمیلم هم با yahoo می زنم .
    با اجازه از Gladiator عزیز،
    عزیز جان، اسم کامپوننت هست idSMTP برای ای میلهای رایگان Yahoo نمی تونید از پروتکل های SMTP/POP3 استفاده کنید! (فکر کنم قبلا 16صد بار اینو گفتیم :wink: )

    برای مابقی سوالات هم فکر کنم بهتر باشه همونطور که Gladiator گفت دوباره از اول یه دور این تاپیک رو بخونی.
    ظاهرا دقیقا متوجه مفاهیمی مثل Server, Client و خود Indy نشدی


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

  53. #39
    کاربر دائمی آواتار Delphi Skyline
    تاریخ عضویت
    دی 1383
    محل زندگی
    شیراز
    پست
    1,175
    تشکر کردن
    236
    133 بار تشکر شده در 69 پست
    پس آقای کشاورز یه دو تا سایت بگید که SMTP باشن برای ایمیلش . آقای کشاورز Yahoo پاپ 3 است ؟
    اگر هست توی خود INDY همچین کامپاننتی هست؟

  54. #40
    کاربر دائمی
    تاریخ عضویت
    تیر 1382
    پست
    378
    تشکر کردن
    7
    36 بار تشکر شده در 8 پست
    آقای کشاورز Yahoo پاپ 3 است ؟
    سرویس رایگان نه ولی پولی داره

    دو تا سایت بگید که SMTP باشن برای ایمیلش .
    gmail :wink: رایگان داره
    علیرضا

صفحه 1 از 3 123 آخرآخر

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

  1. indy
    نوشته شده توسط aserfg در بخش مقالات مرتبط با Delphi/Win32
    پاسخ: 22
    آخرین پست: جمعه 17 خرداد 1387, 19:12 بعد از ظهر
  2. مشکل در indy
    نوشته شده توسط neda azadi در بخش برنامه نویسی در Delphi
    پاسخ: 2
    آخرین پست: شنبه 04 فروردین 1386, 13:11 بعد از ظهر
  3. از اساتید محترم خواهشمندم کمک نمائید - Indy و طراحی مسنجر
    نوشته شده توسط saniak_robot در بخش برنامه نویسی در Delphi
    پاسخ: 12
    آخرین پست: پنجشنبه 09 شهریور 1385, 13:08 بعد از ظهر
  4. هندل کردن خطا در کار کردن با Indy
    نوشته شده توسط TrueFalse در بخش برنامه نویسی در Delphi
    پاسخ: 8
    آخرین پست: شنبه 20 خرداد 1385, 01:05 قبل از ظهر
  5. خطا در استفاده از Indy
    نوشته شده توسط MNosouhi در بخش برنامه نویسی در Delphi
    پاسخ: 0
    آخرین پست: سه شنبه 29 فروردین 1385, 11:22 قبل از ظهر

بوک مارک کردن این تاپیک

بوک مارک کردن این تاپیک

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

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