我在 PHP 中使用套接字来创建一个简单的基于命令行的聊天。它工作正常,但有一个主要问题使它几乎无法使用。当聊天中有多个人并且一个人正在键入消息而另一个人发送消息时,键入消息的人会收到附加到他们正在键入的内容的消息。有没有办法解决?我正在使用标准输入和流选择。下面是客户的一段话:
$uin = fopen("php://stdin", "r");
while (true) {
$r = array($socket, $uin);
$w = NULL;
$e = NULL;
if (0 < stream_select($r, $w, $e, 0)) {
foreach ($r as $i => $fd) {
if ($fd == $uin) {
$text = (fgets($uin));
fwrite($socket, $text);
} else {
$text = fgets($socket);
print $text;
}
}
}
}
感谢所有帮助!谢谢!