اجرای یک کد ساده ی php در مدل client-server روی هاست

سلام من امتحان یک مثال کلاینت - سرور روی فضای اینترنت به مشکل خوردم. مساله ساده اینه که کلاینت یک پیام hello به سرور می فرسته و سرور اونو چاپ می کنه من این مثالو از سایت خود php برداشتم و کلی کار دیگه برای توسعه باید روش انجام بشه. این مثال به درستی روی wammp اجرا میشه و مشکلی نیست. من می خوام این دو اسکریپتو آنلاین کنم و روی فضای واقعی آنلاین اجرا کنم. قرار دادن این دو کد روی هاست اختصاصی و اجرای اونا مثل wammp جواب نمیده. در فیلد host کد مقدار ip اصلی سرورو قرار دادم نمی دونم درسته یا نه؟ به نظر ایراد از اینجاس $result = socket_bind($socket, 0, $port) or die("Could not bind to socket\n"); تابع bind نمیتونه اون آدرس آی پی رو به این اسکریپت سرور اختصاص بده که بعد من بتونم با کد کلاینت به اون وصل بشم. به عبارت واضح تر چطور می شه یک کد php server ساده داشت که یک آی پی به ما بده تا بتونیم به اون وصل بشیم. باز کردن سوکت ها درست است فقط این قسمت bind ایراد دارد.
پاسخ ها

sokanacademy forum
کاربر سکان آکادمی 6 سال پیش
سلام باید کد بزاری، اررها هم کامل تر بگذاری مکننه مشکل رییوز باشه که به لینک زیر برو https://stackoverflow.com/questions/8667330/error-could-not-bind-to-socket-in-php-programming باید اپشن زیر را به کدت اضافه کنی


 if (!socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1)) {
    echo socket_strerror(socket_last_error($socket));
    exit;
} 

اگرنه با اضافه کردن اپشن لینک زیر مشکلت را دقیقتر پیدا کن http://www.php.net/manual/en/function.socket-set-option.php
sokanacademy forum
کاربر سکان آکادمی 6 سال پیش
این لینک سوالمه که تو خود استک هم پرسیدم https://stackoverflow.com/questions/47532151/php-client-server-on-web-host-cant-bind?noredirect=1#comment82031482_47532151
sokanacademy forum
کاربر سکان آکادمی 6 سال پیش
من نمی دونم که مقادیر ip و پورت صحیحی که کار کند را چطور وارد کنم.
sokanacademy forum
کاربر سکان آکادمی 6 سال پیش
من این پورت و ip را از خود آدرس دامنه برداشتم نمی دونم این کار درسته یا نه. چیزی که نیاز دارم یک آدرس آیپی و پورت باز هست که بتونم روش یه php سرور بالا بیارم یا به عبارت دیگر روی اون آدرس و پورت یه سوکت سرور بسازم که تا حالا نشده
sokanacademy forum
کاربر سکان آکادمی 6 سال پیش
آدرس ای پی همان ادرس سروری که روی آن هاست شما است، بعد معمولا روی لینوکس selinux به خاطر مسایل امنیتی یک سری پورت را اجازه باز کردن و بایند کردن نمی دهد، پورت های زیر 1024 باید روت باشی، جدیدا پورتهای بالاهم اجازه استفاده نداری این مربوط به کانفیک سرور است، باید به سراغ vps ها بروید.


Warning: socket_bind(): unable to bind address [98]: Address already in use in /home/stackpro/public_html/index.php on line 22
Could not bind to socket

sokanacademy forum
کاربر سکان آکادمی 6 سال پیش
حدس می زدم آخرش باید یه سرویس اختصاصی بگیرم. الان vps یه آی پی اختصاصی و چند تا پورت به من میده . قطعا می تونم روی اون تابع bind صدا کنم و کارو پیش ببرم؟ از کجا تهیه کنم؟ از خود شرکت بپرسم سر در میاره که این vps راه حل مشکل منه؟ سرویس رایگان وجود نداره برای این کار من یه روز مثلا تست کنم اگه درست کار کرد برم بخرم؟
sokanacademy forum
کاربر سکان آکادمی 6 سال پیش
سلام vps رایگان من ندیدم، سعی کن ارزان ترین بخری ماهانه 17 الی 20 است، ولی تو در وی پی اس ادمین لینوکس مجازی هستی، مشکل شما ای پی نیست، پورت سرور است.قاعدتا کانفیگش دست خودته هرکاری باید بتونی انجام بدی
online-support-icon