PHP로 소켓을 사용하여 간단한 명령 행 기반 채팅을 만듭니다. 그것은 정상적으로 작동하지만, 거의 사용 불가능하게 만드는 주요한 문제가 있습니다. 채팅에 여러 사람이 있고 한 사람이 메시지를 입력하고 다른 사람이 메시지를 보내는 경우 메시지를 입력하는 사람은 입력 내용에 첨부 된 메시지를받습니다. 이 주변에 어쨌든 있습니까? stdin 및 stream select를 사용하고 있습니다. 다음은 고객의 작품입니다.받은 데이터에 추가 된 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;
}
}
}
}
모든 도움을 주실 수 있습니다! 감사!
화면 관리 라이브러리를 사용하여 입력을 읽는 중 화면의 다른 부분에 출력을 표시합니다. – Barmar