PDA

View Full Version : TcpClient and TcpListener



masoodinfo
یک شنبه 12 مهر 1388, 21:01 عصر
با سلام
دوستان برای انتقال فایل از طریق اینترنت با یک برنامه ای که توسط TcpClient و TcpListener نوشته شده،اندازه بافر چقدر باشه مناسب هست ؟
آیا به سرعت اتصال بستگی داره؟
آیا دستورات دات نت این کار رو به طور کامل انجام میده ؟
آیا ممکن است اطلاعات از بین بره؟
آیا ...
جواب بدید تو رو خدااااااااااااااااااااااا اااااااااااااااااااا !!!!!!!

__H2__
دوشنبه 13 مهر 1388, 11:39 صبح
سلام

بافر چقدر باشه مناسب هست ؟
یا شما از ابزار و تکنولوژی ها سطح بالا استفاده میکنید (مثل دانلود عادی یا WebService ها یا WCF و...) که در این صورت شما نیاز به مشخص کردن بافر ندارد و لایه های زیرین خودشان جزئیات را مدیریت میکنند.

یا خودتان از کدهای سطح پایین تر TcpClient و Socket ها استفاده میکنید که در این صورت و در عموم مواقع کد دوطرف را خودتان نوشته اید و میتوانید بسته به شرایط و چیزی که باید جابجا شود و تعداد کلاینتهای انلاین در سرور عدد مناسبی را انتخاب کنید.
(برای یک برنامه دو طرفه عادی با سروری با بار عادی داشتن بافری بین 8K تا 64K به نظر مناسب می آید.)


آیا به سرعت اتصال بستگی داره؟
طبیعتاً هر چه سرعت اتصال بیشتر باشد میتوانید بافر را هم بزرگتر کنید.
ولی محدودیت سرور همچنان وجود دارد که چه تعداد کلاینت در یک زمان میخواهند به سرور وصل شوند، نباید طوری شود که حجم و درصد زیادی از RAM فیزیک سرور پر شود.


آیا دستورات دات نت این کار رو به طور کامل انجام میده ؟
آیا ممکن است اطلاعات از بین بره؟

این دیگر به پروتکل TCP/IP برمیگردد و ربط خاصی با دات نت ندارد.
ولی شاید بتوان گفت پروتکل TCP/IP معروفترین و مطمئن ترین است.
ولی در هر صورت در تمام اعمال زمانبر، تضمین صدردصدی وجود ندارد که ارتباط بین ارسال بسته ها قطع نشود، فقط میتوانید با کدنویسی صحیح نوعی حالت تراکنشی ایجاد کنید تا یا کل اطلاعات ارسال شود و یا اگر وسط کار ارتباط قطع شد کل عملیات کنسل شود و کاری انجام نشود، این تضمین همه یا هیچ را میتوان ایجاد کرد.

masoodinfo
دوشنبه 13 مهر 1388, 21:40 عصر
مرسی از جوابتون .