标签: buffered

使用PHP进行流式打印

我编写了一个PHP脚本,它向搜索引擎发出请求,访问服务结果,从结果中提取一些细节,然后以更有用的形式打印它们.

这一切都运行良好,但我偶然发现的一点是,在等待数据流入时调用echo或print会导致输出也被流式传输.具体来说,有多页结果,所以我访问第一页,读入并重新打印内容,然后转到下一页,在等待下一页加载时,上一页的内容变为可见浏览器.

我不明白为什么这种情况发生得如此不一致.有时在移动到下一页之前将打印一页,有时更少,有时更多.然后,当我之后基本上做同样的事情(在每个结果指向的页面中读取)时,输出几乎不流动,每分钟左右重绘一次.

我正在使用file_get_contents($url)检索内容,并使用其中的函数echo来打印到目前为止已加载的内容.这种流式打印行为是否是浏览器的一项功能,与我在PHP中编写的内容无关?如果没有,怎样才能更好地控制?

php printing streaming echo buffered

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

在golang中创建一片缓冲通道

我找不到在golang中创建一片缓冲通道的方法.我知道如何创建如下所示的无缓冲通道片

type ch chan int
channels := make([]ch,5)
Run Code Online (Sandbox Code Playgroud)

channel go buffered

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

如何通过Clozure Common Lisp中的套接字进行通信?

在一个CCL REPL中,我输入:

(WITH-OPEN-SOCKET (socket :LOCAL-PORT 6667 
                          :LOCAL-HOST "localhost" 
                          :CONNECT :PASSIVE 
                          :REUSE-ADDRESS t)
  (let ((stream (ACCEPT-CONNECTION socket :wait t)))
    (format stream "hello from server.~%")))
Run Code Online (Sandbox Code Playgroud)

它等待连接.

在另一个CCL流程中,我输入:

(WITH-OPEN-SOCKET (socket-stream :REMOTE-PORT 6667 
                                 :REMOTE-HOST "localhost" 
                                 :CONNECT :ACTIVE 
                                 :REUSE-ADDRESS t)
    (format t (READ-LINE socket-stream)))
Run Code Online (Sandbox Code Playgroud)

此时此过程进入等待状态.它既不从服务器读取也不退出.

但是,当客户端连接到服务器时,服务器将以NIL退出.很明显,至少建立了一个连接,但字符串"Hello from server".永远不会沟通.

我相信这是我忽略的基本内容.如何发送消息?READ-LINE不是从流中读取的正确方法吗?我从服务器上写错了吗?如何建立基于双向简单字符串的通信?

sockets common-lisp buffered ccl

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

如果我在while循环中添加if语句,Java缓冲读取器将停止读取行:

我正在用Java从零开始创建一个游戏引擎,我已经开始研究一个新的保存文件,而不是使用地图的imaages:

工作并打印出每一行:

while ((readString = buf.readLine()) != null) {
    System.out.println("Failed to assign action to line: " + readString);
}
Run Code Online (Sandbox Code Playgroud)

不起作用,打印出前3行:

while ((readString = buf.readLine()) != null) {
                if (readString.contains("Width:")){
                    readString.replace("Width:", "");
                    readString.trim();
                    Integer.parseInt(readString);
                    System.out.println(readString);
                }else if (readString.contains("Height:")){
                    readString.replace("Height::", "");
                    readString.trim();
                    Integer.parseInt(readString);
                    System.out.println(readString);
                }else{
                    System.out.println("Failed to assign action to line: " + readString);
                }
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,最上面的一个正在工作并打印出每一行到控制台,第二个在读取第三行后停止.在研究问题时我没有找到任何东西,我的语法似乎是正确的.我的代码出了什么问题?

java buffered

0
推荐指数
1
解决办法
1094
查看次数

如何写入文件并添加"和"

我正在使用BufferedWriter写入文件,当我输入此代码时

bfW.write("System.out.println("YOUR NEW PROGRAM IS COMPLETED");");
Run Code Online (Sandbox Code Playgroud)

它给了我这个错误:

 File_writer.java:93: error: ';' expected                  
 bfW.write("System.out.println("YOUR NEW PROGRAM IS COMPLETED");");   
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

java class file buffered bufferedwriter

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

标签 统计

buffered ×5

java ×2

bufferedwriter ×1

ccl ×1

channel ×1

class ×1

common-lisp ×1

echo ×1

file ×1

go ×1

php ×1

printing ×1

sockets ×1

streaming ×1