PDA

View Full Version : مبتدی: مشکل جدی در سوکت پروگرمینگ



dimo2106
چهارشنبه 26 تیر 1392, 18:16 عصر
سلام به همه اساتید محترم.
می خوام توسط سوکت اطلاعاتی رو به یک PC دیگه که IP ش رو می دونم بفرستم و در یک برنامه دیگه از اونها استفاده کنم.
تو نت سرچ کردم و این برنامه رو دیدم که ظاهراً هم از همه کاملتر هست، ولی یه مشکل اساسی داره و می خوام از اساتید محترم کمک بگیرم و اون اینه وقتی برنامه سرور رو اجرا می کنید و Start رو می زنید برنامه سرور منتظر اتصال یک کلاینت می ماند، حالا برنامه کلاینت رو هم اجرا کرده و IP سرور رو به اون می دیم و Find رو می زنیم، هر دو برنامه به هم متصل می شوند، تا اینجا مشکلی نیست ولی اگر برنامه کلاینت رو ببندیم و دوباره اون رو باز کنیم و Find رو بزنیم، ظاهراً به سرور وصل می شه ولی دیگه برنامه ها کار نمی کنن و باید برنامه سرور رو هم ببندیم و دوباره اون رو باز کنیم تا مشکل برطرف شه.
می خوام بدون اینکه برنامه سرور بسته بشه، کلاینت ها هر چه قدر می خوان باز وبسته شن و بتونن با سرور ارتباط برقرار کنن.
لطفاً دوستان عزیز به من کمک کنن، من الکترونیک خوندم و زیاد هم سی شارپ بلد نیستم.
ازتون ممنونم.

CsharpNevisi
چهارشنبه 26 تیر 1392, 19:05 عصر
سلام به همه اساتید محترم.
می خوام توسط سوکت اطلاعاتی رو به یک PC دیگه که IP ش رو می دونم بفرستم و در یک برنامه دیگه از اونها استفاده کنم.
تو نت سرچ کردم و این برنامه رو دیدم که ظاهراً هم از همه کاملتر هست، ولی یه مشکل اساسی داره و می خوام از اساتید محترم کمک بگیرم و اون اینه وقتی برنامه سرور رو اجرا می کنید و Start رو می زنید برنامه سرور منتظر اتصال یک کلاینت می ماند، حالا برنامه کلاینت رو هم اجرا کرده و IP سرور رو به اون می دیم و Find رو می زنیم، هر دو برنامه به هم متصل می شوند، تا اینجا مشکلی نیست ولی اگر برنامه کلاینت رو ببندیم و دوباره اون رو باز کنیم و Find رو بزنیم، ظاهراً به سرور وصل می شه ولی دیگه برنامه ها کار نمی کنن و باید برنامه سرور رو هم ببندیم و دوباره اون رو باز کنیم تا مشکل برطرف شه.
می خوام بدون اینکه برنامه سرور بسته بشه، کلاینت ها هر چه قدر می خوان باز وبسته شن و بتونن با سرور ارتباط برقرار کنن.
لطفاً دوستان عزیز به من کمک کنن، من الکترونیک خوندم و زیاد هم سی شارپ بلد نیستم.
ازتون ممنونم.

فک کنم اگر دستورات مربوط به اتصال به کلاینت رو داخل یک ترد بنویسی و دائما ترد در حال اجرا باشه ... درست شه ... !!!!
اگه نتونستی بگو خودم بنویسم بهت بدم ... !!!

Direlap
چهارشنبه 26 تیر 1392, 20:09 عصر
این مشکل اونجایی آشکار میشه که برنامه کلاینت بخواد ناخودآگاه بسته بشه یا بدون هندشیک بخواد به ارتباط پایان بده.

شما باید تو رویداد بسته شدن فرم و یا کلیدی که به خاتمه ارتباط گذاشته اید تو رویداد کلیکش اون ارتباط رو ببندید.(ارتباط سوکت رو حذف کنید)

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

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

موفق باشید

dimo2106
پنج شنبه 27 تیر 1392, 12:25 عصر
همونطور که گفتید لازم هست که این مفاهیم رو کاملاً بلد باشم، که متاسفانه من تسلط کافی ندارم.
ممکنه از شما خواهش کنم که رو نمونه کد این مشکل رو برام برطرف کنید.

Direlap
شنبه 29 تیر 1392, 01:16 صبح
این لینک به شما کمک میکنه به مفاهیم تئوری و عملی تا حدودی مسلط بشین

http://www.daneshjooyar.com/%D9%85%D8%AC%D9%85%D9%88%D8%B9%D9%87-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%DA%A9%D8%A7%D9%85%D9%84-%D8%B3%D9%88%DA%A9%D8%AA-%D9%BE%D8%B1%D9%88%DA%AF%D8%B1%D9%85%DB%8C%D9%86%D A%AF-%D8%AF%D8%B1-%D9%82%D8%A7/

بقیش میمونه به تلاش خودتون

dimo2106
شنبه 29 تیر 1392, 10:52 صبح
میشه خواهش کنم که رو نمونه کد، برام بنویسن، چون دانش برنامه نویس من خیلی زیاد نیست.