तो, मेरे पास एमआईआरसी पोर्ट 1235 पर एक श्रवण (मेरे साथ भालू) बना रहा है और मैंने अपने स्थानीयहोस्ट सर्वर पर ऐसे पोर्ट से कनेक्ट करने के लिए एक PHP स्क्रिप्ट बनाने की कोशिश की है।PHP सॉकेट आधे काम कर रहे हैं
मेरा लोकहोस्ट एक स्वच्छ अपाचे + PHP है जिसमें एमआईआरसी दूसरे कंप्यूटर (लैन के अंदर) चल रहा है।
स्क्रिप्ट काम करता है आधा अधिकार के रूप में: 1) यह 1235 बंदरगाह 2) भेजता है को जोड़ता है $ i 2.1), लेकिन दूसरी तरफ कोई संदेश प्राप्त है पर (उर्फ मैं एक जुर्राब पढ़ घटना मिलता है लेकिन कोई पाठ पॉप अप होता है) 3) इसे पढ़ता सभी इनकमिंग संदेशों correclty 4) यह बंद कर देता है जब 'अंत' संदेश drumroll 5) यह तभी काम करता है, जबकि समारोह में मौजूद नहीं है। 5.1) उर्फ इनिफी-लोडिंग। यह केवल गूंज जब सॉकेट 'अंत'
यहाँ कोड है, जो एक साधारण उदाहरण मैं php.net पर पाया है, अग्रिम धन्यवाद :) के माध्यम से बंद कर दिया है पता चलता
<?php
//The Client
error_reporting(E_ALL);
$address = "192.168.1.101";
$port = 1235;
/* Create a TCP/IP socket. */
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
echo "socket_create() failed: reason: " . socket_strerror(socket_last_error()) . "\n";
} else {
echo "socket successfully created.\n";
}
echo "Attempting to connect to '$address' on port '$port'...";
$result = socket_connect($socket, $address, $port);
if ($result === false) {
echo "socket_connect() failed.\nReason: ($result) " . socket_strerror(socket_last_error($socket)) . "\n";
} else {
echo "successfully connected to $address.\n<br>";
}
$allow = true;
$i = 0;
while ($allow == true)
{
$i++;
echo "Sending $i to server.\n<br>";
socket_write($socket, $i, strlen($i));
$input = socket_read($socket, 2048);
if ($input == 'end') {
$allow = false;
}
echo "Response from server is: $input\n";
sleep(5);
}
echo "Closing socket...";
socket_close($socket);
?>
इस मैं क्या मिलता है ब्राउज़र में, 'अंत' कहने
सॉकेट के बाद सफलतापूर्वक बनाया गया। पोर्ट '1235' पर '192.168.1.101' से कनेक्ट करने का प्रयास ... 192.168.1.101 से सफलतापूर्वक कनेक्ट किया गया। सर्वर को 1 भेज रहा है। सर्वर से प्रतिक्रिया है: सर्वर से ठीक प्रतिक्रिया है: अंत
इस mIRC में है:
परीक्षण: 89.152.172.21 में है! Blockquote
पढ़ पास अगर मैं 60 के लिए यह एक घंटे के लिए काम छोड़ दिया था, गुणा "पढ़ें" और "भेजने एन सर्वर से 1" लेकिन यह केवल जुर्राब बंद करने के बाद पता चलता है (या stoping द्वारा जबकि)
आप पोस्ट कर सकते हैं क्या 'echos' इसे बाहर थूकना है जब आप उस चलाने? इसे डीबग करने में सहायक हो सकता है। – xil3
कोई फर्क नहीं करना चाहिए 'echos' बाहर थूक दिया है करने के लिए :) – MoshMage