PDA

View Full Version : سوالات جزیی از سوکت نویسی



Direlap
یک شنبه 20 فروردین 1391, 12:45 عصر
سلام

وقتی این خط کد رو مینویسیم من اینجوری متوجه شدم که برنامه تا این خط کد میاد و منتظر میمونه برای این که یه کلاینتی درخواست اتصال کنه .

Socket.Listen(10);

این عدد 10 که نوشتیم این یعنی چی ؟

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

ممنونم از همتون

hakim22
یک شنبه 20 فروردین 1391, 14:46 عصر
عدد 10 تعداد connection هایی است که برنامه ی شما قرار است به آنها به گوش دهد . برای بدست آوردن تعداد کل آنها از MaxConnections استفاده کنید.

Direlap
یک شنبه 20 فروردین 1391, 21:03 عصر
ممنونم . یعنی منی که نوشتم 10 میتونه ده تا کانکشن رو قبول کنه . ( همزمان یا در کل ؟ )

و این که اینو نگفتین حتما باید از نخ ها استفاده کنم ؟

hakim22
دوشنبه 21 فروردین 1391, 09:31 صبح
بله شما در این کد ظرفیت گوش دادن به 10 کانکشن رو ایجاد می کنید.

بهتره از thread استفاده کنید وگرنه برنامه ی شما Not responding باقی می ماند. من در بیشتر کدهام از BackgroundWorker استفاده می کنم که یک کامپوننت برای مدیریت و کار با نخهاست.

Direlap
سه شنبه 22 فروردین 1391, 18:13 عصر
وقتی ظرفیت رو تعریف کردم برنام وقتی به کد من میرسه منتظر میمونه تا یکی بهش وصل بشه تا خطوط بعدی کد ها اجرا بشن . اگه ظرفیت رو بیش از یدونه در نظر بگیرم برنامه بعد این که به یه درخواست پاسخ داد میاد و از همون خط کد listen دوباره شروع می کنه ؟ اگه آره که هیچ ولی اگه نه پس چطوری میتونم از تمام ظرفیتش استفاده کنم ؟
من اینجاشو نمیفهمم .
بازم ممنون از پاسخ هاتون .

hakim22
سه شنبه 22 فروردین 1391, 19:07 عصر
خیر و برای استفاده از تمام ظرفیت از MaxConnections استفاده کنید.
وقتی برنامه داره گوش میده اینکارو همیشه انجام میده
متد accept کانکشن مورد نظر شما رو انتخاب می کنه.
بستگی داره که شما از چه متدی و چه پروتکلی برای کارتون استفاده کنید.

پیشنهاد می کنم کتاب network programming in .net رو مطالعه بفرمایید و انواع کدها و توضیحات مورد نیازتون رو از همون جا بدست خواهید آورد.