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

نام تاپیک: بسته شدن برنامه طرف سرور

  1. #1
    کاربر تازه وارد آواتار reza_program
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    شیراز
    پست
    66

    بسته شدن برنامه طرف سرور

    سلام
    من یه برنامه کلاینت/سرور دارم

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

    ولی زمانی که سمت کلاینت ارتباط رو قطع میکنه

    سمت سرور بسته میشه و از خظ زیر ارور میگیره(عکس ضمیمه):

     
    if (client.Connected)
    {
    ns.Read(Recvbyte, 0, client.ReceiveBufferSize);

    حتا قبلش بررسی کردنم که اگه ارتباط برقرار بود بیا این کارو انجام بده
    ولی مشکلم حل نشد!

    ربطی به نسخه دات نت نداره؟

    از سی شارپ 2008 و دات نت 3.5 سرویس پک 1 استفاده میکنم!

    ممنون میشم راهنمایی کنید!
    عکس های ضمیمه عکس های ضمیمه

  2. #2
    کاربر تازه وارد آواتار BILLY_Mgs
    تاریخ عضویت
    تیر 1388
    محل زندگی
    @ My Team Foundation Server
    پست
    68

    نقل قول: بسته شدن برنامه طرف سرور

    از یه Try , catch نمیشه استفاده کرد؟

  3. #3
    کاربر دائمی آواتار C Sharp
    تاریخ عضویت
    مرداد 1389
    محل زندگی
    System.Object
    پست
    101

    نقل قول: بسته شدن برنامه طرف سرور

    وقتی یه طرف ارتباط TCP، ازتباطش رو میخواد قطع کنه ، قبلش یه پیغام به طرف مقابل میده و بعد هر دو منتظر میمونن تا ارتباط بطور کامل قطع بشه ، واسه همین تا زمانی که این عمل بطور کامل صورت نگیره ، همچنان Socket تو وضعیت Connected هست.

    واسه دیدن عینی این مسئله میتونید تو CMD دستور netstat رو بزنید ، بعد یک سایت رو تو مرورگر لود کنید و بلافاصله تو CMD دوباره دستور netstat رو وارد کنید

    وضیعت سوکت موقع ارتباط Established، موقع قطع شدن Fin_Wait و بعد Time_Wait هست

    بهمین دلیل چون از طرفی ارتباط کاملا قطع نشده ، وضعیت سوکت Connectedهست و از طرف دیگه چون پیغام قطع ارتباط بین دو طرف منتقل شده ،سوکت قادر به خوندن از استریم نیست

  4. #4
    کاربر تازه وارد آواتار reza_program
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    شیراز
    پست
    66

    نقل قول: بسته شدن برنامه طرف سرور

    ممنون از جوابتون

    پس باید حتما دستور
    Client.Close()
    صادر بشه تا سوکت قطع شده و گرنه همچنان سوکت وصله.


  5. #5
    کاربر دائمی آواتار C Sharp
    تاریخ عضویت
    مرداد 1389
    محل زندگی
    System.Object
    پست
    101

    نقل قول: بسته شدن برنامه طرف سرور

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

  6. #6
    کاربر دائمی
    تاریخ عضویت
    مرداد 1385
    محل زندگی
    گلستان
    پست
    191

    نقل قول: بسته شدن برنامه طرف سرور

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

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

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