小编fda*_*fda的帖子

PHP:从套接字或 STDIN 读取

我正在学习 PHP 中的套接字编程,因此我正在尝试一个简单的回显聊天服务器。

我写了一个服务器并且它可以工作。我可以将两个网络猫连接到它,当我在一个网络猫中写入时,我会在另一个网络猫上收到它。现在,我想在 PHP 中实现 NC 的功能

我想使用 Stream_select 来查看 STDIN 或套接字上是否有数据,以便将消息从 STDIN 发送到服务器或从服务器读取传入消息。不幸的是,php 手册中的示例没有给我任何如何做到这一点的线索。我尝试简单地 $line = fgets(STDIN) 和 socket_write($socket, $line) 但它不起作用。所以我开始往下走,只是想让stream_select在用户输入消息时起作用。

$read = array(STDIN);
$write = NULL;
$exept = NULL;

while(1){

    if(stream_select($read, $write, $exept, 0) > 0)
        echo 'read';
}
Run Code Online (Sandbox Code Playgroud)

给予

PHP 警告:stream_select():第 18 行 /home/user/client.php 中没有传递流数组

但是当我 var_dump($read) 时,它告诉我,它是一个带有流的数组。

array(1) {
  [0]=>
  resource(1) of type (stream)
}
Run Code Online (Sandbox Code Playgroud)

如何让stream_select工作?


PS:在Python中我可以做类似的事情

r,w,e = select.select([sys.stdin, sock.fd], [],[])
for input in r:
    if input == sys.stdin:
        #having input on stdin, we …
Run Code Online (Sandbox Code Playgroud)

php stdin stream

3
推荐指数
1
解决办法
4803
查看次数

jquery:不明白为什么元素选择器工作或不工作

我有一个带有以下元素的html文档

<input type="text" style="width: 40px;" name="rate" id="rate" value="1" />
Run Code Online (Sandbox Code Playgroud)

现在,我希望在更改此文本字段后使用jQuery运行函数.但我似乎不明白选择器是如何工作的.因为此示例有效:

<script>
// works
$(document).on('input', function() {
    alert(); 
});
</script>
Run Code Online (Sandbox Code Playgroud)

但当然它会触发所有相互作用的输入.所以我只想要一个特定的id响应:

<script>
// doesn't work
$(document).on('#rate', function() {
    alert(); 
});
</script>
Run Code Online (Sandbox Code Playgroud)

但它不起作用.既没有类或属性("input [name ='rate']")也没有'input#rate'而不是文档.

$('input#rate').on(function() {
Run Code Online (Sandbox Code Playgroud)

这是为什么?

包含在头部的jQuery是:

<script src="/assets/jquery-1.12.3.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

html javascript jquery

-5
推荐指数
1
解决办法
83
查看次数

标签 统计

html ×1

javascript ×1

jquery ×1

php ×1

stdin ×1

stream ×1