<?php
set_time_limit(10);
$commonProtocol = getprotobyname("tcp");
$socket = المقبس_إنشاء(AF_INET, SOCK_STREAM, $commonProtocol);
إذا (مقبس) {
$result = المقبس_bind($socket, 'localhost', 1337);
إذا (نتيجة) {
نتيجة $ = المقبس_listen($socket, 5);
إذا (نتيجة) {
صدى "监听成功" ؛
}
}
}آخر{
صدى "监听失败" ؛
}
يفعل {
إذا (($msgsock =ocket_accept($socket))) { /* قم بتوصيل جميع البيانات */
$msg = "===============================================rn " .
"مرحبًا بك في خادم اختبار PHP. rnrn" .
"للإنهاء، اكتب 'quit'.rn" .
"لإيقاف تشغيل الخادم، اكتب 'إيقاف التشغيل'.rn" .
"للحصول على رسالة المساعدة، اكتب 'مساعدة'.rn" .
"===================================================rn" .
"php>";
}
المقبس_الكتابة($msgsock, $msg, strlen($msg));
يفعل {
$buf = المقبس_قراءة($msgsock, 2048, PHP_BINARY_READ);
إذا (خطأ === $buf) {
صدى "فشل المقبس_قراءة (): السبب: " . مأخذ التوصيل_ستريرور(نتيجة $) . "ن";
استراحة 2؛
}
إذا (!$buf = تقليم($buf)) {
يكمل؛
} /* قم بإنهاء عملية إنهاء عملية الإنهاء في المرة القادمة */
إذا ($buf == 'ف') {
استراحة؛
} /* قم بإيقاف تشغيل الجهاز مرة أخرى وإيقاف تشغيله */
إذا ($buf == 'إيقاف التشغيل') {
المقبس_إغلاق($msgsock);
استراحة 2؛
} /* قم بمساعدتنا في الحصول على المساعدة اللازمة */
إذا ($buf == 'h') {
$msg = " رسالة تعليمات خادم PHP rnrn" .
"للإنهاء، اكتب 'quit'. rn" .
" لإيقاف تشغيل الخادم، اكتب 'shutdown'.rn" .
"للحصول على رسالة المساعدة، اكتب 'مساعدة'.rn" .
"php> ";
المقبس_الكتابة($msgsock, $msg, strlen($msg));
يكمل؛
} /* تم تحديد موعد التسليم النهائي */
$talkback = "PHP: أمر غير معروف '$buf'.rnphp> ";
المقبس_الكتابة($msgsock, $talkback, strlen($talkback));
صدى "$bufn";
} بينما (صحيح)؛
المقبس_إغلاق($msgsock);
}بينما (صحيح)؛
/* توصيل المقبس */
المقبس_إغلاق($socket);
?>