PDA

View Full Version : socket programming



a_mogheimi
سه شنبه 13 مرداد 1394, 00:02 صبح
سلام .

سوالی از خدمت اساتید محترم دارم

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

سوال اول : آیا راهی هست سرور رو برای روش های اتصال تست کنیم و ببینیم از چه راههایی میشه ارسال و دریافت داشت؟

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

ما نیاز داریم ارتباط کلاینت با سرور دائما برقرار باشه .

سوال دوم : در php چطور اینکار رو انجام بدیم که یک ارتباط دائمی با سرور برقرار باشه و اگه بنا به دلایلی ارتباط قطع شد مجددا ارتباط برقرار بشه؟

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

سوال سوم : چطور میشه این ارسال ها و دریافت ها رو مدیریت کرد که پاسخ دریافتی از سرور برای یک کاربر با بقیه کاربر ها تداخل پیدا نکنه ؟



ممنون و متشکرم

pbm_soy
سه شنبه 13 مرداد 1394, 01:12 صبح
منظور و هدفتان را دقیقتر توضیح بدید
منظورتان از وب سروری داریم چیست؟ یعنی سرور را در اختیار دارید یا اینکه فقط یک هاست وب از آن سرور دارید؟
جواب اول بله میتوانید سرور را پورت اسکن کنید و ببینید چه پورتهایی بروی آن باز است هر پورت باز به معنی یک سروریس درحال اجرا بروی سرور است و شما میتوانید به آن سرور متصل شوید و سرویس بگیرید (درصورت داشتن دسترسی)
جواب دوم در PHP بهترین کار استفاده از Websocket است دقیقا چیزی که شما میخواهید را انجام میدهد ورژن جدیدتر و یا بهتر آن WebRTC است (البته درمورد تفاوت ایندو و کاربردهای آنها و نحوه استفاده از به عهده شماست)

جواب سوم جواب برمیگردد به نحوه کار شما در WebSocket

a_mogheimi
سه شنبه 13 مرداد 1394, 07:35 صبح
ممنون از پاسختون .
دسترسی به سرور نداریم . ارسال و دریافت اطلاعات از سرور با برنامه ویندوزی انجام میشد با برنامه های اسنیفینگ متوجه بسته های ارسالی به سرور شدیم بسته های با پروتکل TCP رد و بدل میشه و به صورت هگز ارسالها انجام میشه فرضا برای ارسال یک رشته به سرور باید ازفرمت زیر استفاده میشد :

\x03\x00\x00\x1B\x02\xF0\x80\x8E\x81\x72\x00\x0C\x 7D\x53\x7B\x1B\x0B\x22\x21\x0F\x1E کد هگز رشته \x20\x93\x95\x90
. چه نوع ارتباطی با سرور داده ها رو به اینصورت ارسال و دریافت میکنه ؟
با socket php تونستیم ارتباط برقرار کنیم ولی مشکل در قسمت سوم سوالم هست وبه طور خلاصه مشکلمون اینه که ما میخواهیم هاست یا سرورمون یک ارتباط دائمی با اون سایت برقرار کنه و کاربرا و ویزیتورهای سایت بتونن بدون استفاده از یوزر نیم و پسورد از امکانات استفاده کنند و از اونجایی که هر کاربری درخواست خودش روبه سرور ارسال میکنه ممکنه تداخلی پیش بیاد یعنی پاسخ دریافت شده یک کاربر برای کاربر دیگه ارسال بشه و ...