PDA

View Full Version : مشکل در برنامه نویسی socket programming



نیکناز
یک شنبه 17 فروردین 1393, 12:53 عصر
سلام دوستان
من یه سخت افزار دارم که به صورت wifi به یه acccesspoint وصل میشه و در نهایت به یک سرور متصل می شه .
برنامه ای با سوکت پروگرمینگ نوشتم و سوکتی که در نظر گرفتم شامل پورت dns 53 هست . که متوجه شدم این پورت یک پورت سیستمی هست که در اختیار dns server هست . سرویس dns server رو غیر فعال کردم اما سخت افزار بعد از آن ، نتواست اینپورت را بشناسه که البته منطقی به نظر می رسه .
و به طور کلی متوجه شدم تنها می تونم از پورت هایی استفاده کنم که قابلیت تلنت زدن از سمت سخت افزار را دارن .
مثل پورت 3389 .
این پورت را امتحان کردم ، سخت افزار میتونه اون رو بشناسه و اطلاعات بفرسته . با برنامه اسکن پورت ، می بینم که پورت سخت افزار در حالت established قرار داره.
اگر در برنامه از کد
socket.connect() استفاده کنم پورت سرور در حالت listining قرار می گیره و برنامه در خط خوندن پورت بلاک می شه .
و اگر از کد
socket.bind() استفده کنم برنامه خطا میدهد که همزمان چند برنامه نمی تواند از یک پورت استفاده کند. مثلا برای پورت 53 ، سرویس dns server است که از این پورت استفاده می کند .
لطفا راهنمایی کنید .َ

hadi0x7c7
یک شنبه 17 فروردین 1393, 13:08 عصر
شما یه برنامه کلاینت/ سرور دارین، که سرورتون روی پورت 3389 داری لیسن میکنه، بعد میخواین چند تا کلاینت به این سرور وصل بشن؟

نیکناز
یک شنبه 17 فروردین 1393, 13:33 عصر
شما یه برنامه کلاینت/ سرور دارین، که سرورتون روی پورت 3389 داری لیسن میکنه، بعد میخواین چند تا کلاینت به این سرور وصل بشن؟

نه دوست عزیزم
من یه سخت افزار دارم که به سرور من به پورت dns 53 وصل میشه و داده میفرسته
من باید داده هایی که اون رو پورت میفرسته رو بخونم

golinazhad_h
یک شنبه 17 فروردین 1393, 14:43 عصر
دوست عزیز:
دربرنامه نویسی سوکت اول یک سوکت عممی را تعریف میکنند بعد پورتی را بهش bind می کنند و سوکت را در حالت Listen قرار میدهند
وقتی ارتباط با سوکت برقرار شد مشخصه سوکت وصل شده را به یک سوکت جدید اختصاص میدهند ارسال و دریافت را با سوکت جدید انجام میدهند بعد سوکت اول را دوباره برای دریافت ارتباط بعدی در حالت listen قرار میدهند
ضمنا شما قادر به bind کردن پورتهای 0 تا 1024 نمی باشید چون این پورتها برای سیستم عامل رزرو شده است

hadi0x7c7
یک شنبه 17 فروردین 1393, 16:17 عصر
شما باید سرورتون رو چند نخی بنویسید، این تنها راهی هست که به ذهنم میرسه
اینجا (http://stackoverflow.com/questions/15640984/client-server-multi-threaded-using-tcp-listener-and-streamreader-writer)و اینجا (http://csharp.net-informations.com/communications/csharp-multi-threaded-server-socket.htm)و اینجا (http://www.mikeadev.net/2012/07/multi-threaded-tcp-server/)رو نگاه کنید شاید به کارتون اومد:D