【发布时间】:2011-06-21 07:15:15
【问题描述】:
所以,我让 mIRC 在端口 1235 上进行侦听(请耐心等待),我尝试制作一个 php 脚本来连接到我的本地主机服务器上的此类端口。
我的 localhost 是一个干净的 Apache+PHP,mIRC 在另一台计算机(局域网内)上运行。
该脚本的工作方式有一半: 1)它连接到1235端口 2) 它发送 $i 2.1)但另一方面没有收到味精(也就是我收到一个袜子读取事件,但没有弹出文本) 3)它正确读取所有传入的消息 4)当“结束”是消息时它关闭 鼓声 5) 仅当 while 函数不存在时才有效。 5.1)又名 Inifi 加载。它只在通过'end'关闭套接字时显示回声
这是代码,这是我在 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);
?>
这是我在浏览器中看到的,在说“结束”之后
套接字成功创建。 尝试连接到 端口上的“192.168.1.101” '1235'...成功连接到 192.168.1.101。发送 1 到服务器。来自服务器的响应是:好的 来自服务器的响应是:结束
这是在 mIRC 中:
测试:89.152.172.21 在! 读 关闭 块引用
如果我让它工作了一个小时,将“读取”乘以 60 并“发送 N+1 到服务器” 但这只会在 sock close 后显示(或通过一段时间停止)
【问题讨论】:
-
您可以发布运行时吐出的
echos内容吗?可能有助于调试它。 -
更新了帖子以吐出
echos:)