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

نام تاپیک: Connection Closed GraceFully

  1. #1
    کاربر دائمی آواتار ali_reza_nazari
    تاریخ عضویت
    بهمن 1383
    محل زندگی
    http://www.QurandDaily.ir
    سن
    42
    پست
    167

    Connection Closed GraceFully

    سلام
    من نمونه کد زیر رو برای دانلود نوشتم
    وقتی فایلهای متنی و پی دی اف رو دانلود می کنم. اصلا مشکلی نیست
    به حجم هم حساسیت نداره
    اما وقتی می خوام فایل فشرده یا اجرایی رو دانلود کنم به ارور

    Connection Closed GraceFully

    برخورد می کنم و ارتباط قطع میشه

    اگه ممکنه راهنمایی بفرمایید





    Procedure Download(var AContext: TIdContext);
    Var
    s: string;
    TheStream : TFileStream;
    Begin
    with AContext.Connection Do
    begin
    IOHandler.Writeln('file name?');
    s := IOHandler.ReadLn();
    s := Base_Dir + s;
    //Memo_server.Lines.Add('Execute : ' +s + DateTimeToStr(now()));
    TheStream := TFileStream.Create(s, fmOpenRead);
    IOHandler.Writeln(intToStr(TheStream.Size));
    IOHandler.WriteBufferOpen;
    IOHandler.WriteBufferClear;
    IOHandler.Write(TheStream);
    IOHandler.WriteBufferClose;
    TheStream.Free;
    //IOHandler.ReadBytes(
    end;
    End;



  2. #2
    کاربر دائمی آواتار ali_reza_nazari
    تاریخ عضویت
    بهمن 1383
    محل زندگی
    http://www.QurandDaily.ir
    سن
    42
    پست
    167

    نقل قول: Connection Closed GraceFully

    یعنی واقعا روش بهتری برای انتقال فایل وجود نداره؟
    فقط همین روش هست؟
    روش مطمئن تری برای انتقال فایلهای اجرایی نیست؟

  3. #3

    نقل قول: Connection Closed GraceFully

    یادم میاد که قبلاً برای انتقال فایل ها مجبور شدم که به جای Indy از RemObjects SDK استفاده کنم که خوشبختانه چنین مشکلاتی را نداشت. اگر اشتباه نکنم در این مورد یک پروژه نمونه در کنارش وجود داره که میتونید از اون استفاده کنید.

  4. #4
    کاربر دائمی آواتار ali_reza_nazari
    تاریخ عضویت
    بهمن 1383
    محل زندگی
    http://www.QurandDaily.ir
    سن
    42
    پست
    167

    نقل قول: Connection Closed GraceFully

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

  5. #5
    کاربر دائمی آواتار gbg
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    تهران
    سن
    46
    پست
    691

    نقل قول: Connection Closed GraceFully

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

  6. #6
    کاربر دائمی آواتار ali_reza_nazari
    تاریخ عضویت
    بهمن 1383
    محل زندگی
    http://www.QurandDaily.ir
    سن
    42
    پست
    167

    نقل قول: Connection Closed GraceFully

    می دونم
    این خطا در محتویات فایل اجرایی هست
    یعنی یک سری اطلاعات باینری توی اون هست که برای سرور مفهوم داره و باعث اجرای یک سری دستورات مثل قطع کردن ارتباط میشه
    سئوال من اینه که روش دیگه ای برای انتقال هست که این مشکل در اون بوجود نیاد و درواقع انتقال اطلاعات بوسیله اون روش گارانتی بشه؟

  7. #7
    کاربر دائمی آواتار ali_reza_nazari
    تاریخ عضویت
    بهمن 1383
    محل زندگی
    http://www.QurandDaily.ir
    سن
    42
    پست
    167

    نقل قول: Connection Closed GraceFully

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

  8. #8

    نقل قول: Connection Closed GraceFully

    کی گفته تمام مثالها بر اساس نسخه 9 است؟ در این صفحه مثالهای مربوط به Indy 10 وجود داره که می تونید از اونها استفاده کنید:
    http://www.indyproject.org/Sockets/Demos/index.EN.aspx

    برای اینکه نحوه انتقال فایلها رو بهتر متوجه بشید پیشنهاد می کنم که مثالهای IdFTP (FTP Client)و IdFTPServer را دانلود و مورد بررسی قرار بدید.

  9. #9
    کاربر دائمی آواتار ali_reza_nazari
    تاریخ عضویت
    بهمن 1383
    محل زندگی
    http://www.QurandDaily.ir
    سن
    42
    پست
    167

    نقل قول: Connection Closed GraceFully

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


    تاریخ لینکی که دادید رو ببینید مربوط به 2004 تا 2005 هست.
    ایندی دلفی ایکس ای 10.5.7 هست که توی خود ایندی پروجکت آخرین نسخه ای که بیرون اومده 10 هست و توی جاهای دیگه 10.4
    یک لینک هم مربوط به آتوزد هست که خیلی وقته دیگه فعال نیست

  10. #10

    نقل قول: Connection Closed GraceFully

    مگه برای اف تی پی نیاز نداریم که سرور اف تی پی داشته باشیم؟؟
    برنامه ای که به عنوان سرور FTP می سازیم کار سرور رو انجام میده و به چیز بیشتری نیاز نیست.
    وقتی آی پی ها ولید نیستند نمیشه از این سیستم استفاده کرد
    میشه، من خودم شخصاً برنامه ای را برای این منظور ساخته ام و تست هم کرده ام که مربوط به یک شبکه محلی است.
    تاریخ لینکی که دادید رو ببینید مربوط به 2004 تا 2005 هست.
    Indy 10 هم مربوط به همان سالهاست ولی بنا به دلایلی و در صورت نیاز آپدیت شده است.
    یک لینک هم مربوط به آتوزد هست که خیلی وقته دیگه فعال نیست
    فعال است. Atozed در پروژه های مختلفی همکاری بسیار نزدیکی دارد.

  11. #11
    کاربر دائمی آواتار ali_reza_nazari
    تاریخ عضویت
    بهمن 1383
    محل زندگی
    http://www.QurandDaily.ir
    سن
    42
    پست
    167

    نقل قول: Connection Closed GraceFully

    Your OnExecute event handler has code in it that is not thread-safe (the Memo logic), and your Download() procedure is using write buffering when it should not be.  Either of those could lead to unwanted exceptions being raised that will terminate the connection.

    Try this code instead:


    uses
    ..., IdSync;

    type
    TMemoNotify = class(TIdNotify)
    protected
    fMsg: String;
    procedure DoNotify; override;
    public
    class procedure AddToMemo(const AMsg: String);
    end;

    class procedure TMemoNotify.AddToMemo(const AMsg: String);
    begin
    with Create do begin
    fMsg := AMsg;
    Notify;
    end;
    end;

    procedure TMemoNotify.DoNotify;
    begin
    Form1.Memo_server.Lines.Add(fMsg);
    end;

    procedure TForm1.IdTCPServer1Execute(AContext: TIdContext);
    var
    Command : String;
    begin
    // FYI, if you switch to TIdCmdTCPServer, you can remove this OnExecute handler
    // completely and use the TIdCmdTCPServer.CommandHandlers collection instead,
    // which allow you to define per-command OnCommand handlers at design-time...

    Command := AContext.Connection.IOHandler.ReadLn;
    TMemoNotify.AddToMemo('Execute : ' + Command + #13 + DateTimeToStr(Now));

    if TextIsSame(Command, 'download') then
    Download(AContext)
    else if TextIsSame(Command, 'list_of_file_dir') then
    list_of_file_dir(AContext);
    end;

    procedure Download(AContext: TIdContext);
    var
    s: string;
    TheStream : TFileStream;
    begin
    with AContext.Connection do
    begin
    IOHandler.WriteLn('file name?');

    // warning: this is a potential security risk! Don't use the client's path
    // as-is, you should sanitize it first before you then use it. Otherwise,
    // a malicious client can pass in a filename that is preceeded with ".."
    // and other folders to access files you do not want it to access...
    s := Base_Dir + IOHandler.ReadLn;

    TheStream := TFileStream.Create(s, fmOpenRead or fmShareDenyWrite);
    try
    IOHandler.WriteLn(IntToStr(TheStream.Size));
    IOHandler.Write(TheStream);
    finally
    TheStream.Free;
    end;
    end;
    end;


    http://forums2.atozed.com/viewtopic....9c9b2f88e8f44f

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

  1. پاسخ: 0
    آخرین پست: یک شنبه 27 فروردین 1391, 10:34 صبح
  2. سوال: Close TCP Connection
    نوشته شده توسط Rasool-GH در بخش برنامه نویسی با MFC و ++Visual C
    پاسخ: 4
    آخرین پست: چهارشنبه 18 دی 1387, 20:38 عصر
  3. In use ماندن دیتابیس با وحود استفاده از Connection.Close
    نوشته شده توسط reza6384 در بخش برنامه نویسی مبتنی بر Microsoft .Net Framework
    پاسخ: 7
    آخرین پست: شنبه 11 آبان 1387, 22:24 عصر
  4. به دست آوردن IP ی ISP یی که به او connect شدیم
    نوشته شده توسط sajjad_rpg در بخش امنیت در شبکه
    پاسخ: 7
    آخرین پست: یک شنبه 09 بهمن 1384, 16:04 عصر
  5. مشکل در Connect به SQL Server
    نوشته شده توسط ghaum در بخش مسائل مرتبط با نصب و راه اندازی
    پاسخ: 4
    آخرین پست: شنبه 30 فروردین 1382, 07:45 صبح

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

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

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