我设置了一个 PHP 服务器每秒写入一个套接字。
while(1) {
$message = "Hello, World!";
socket_write($socket, $message, strlen($message));
sleep(1);
}
然后我有一个 Lua 客户端(Corona SDK),它每 1/10 秒检查一次套接字是否有数据:
timer.performWithDelay(100, function() sock:receive() end, 0) end
我的问题是:每次运行 sock:receive() 时服务器是否“命中”?还是 sock:receive() 只检查本地缓冲区?
重新表述这个问题:我运行 sock:receive() 的频率越高,服务器是否会收到更多的负载?还是完全不受此影响?
最佳答案
不,套接字接收不会“命中”服务器。如果可能,您可以在服务器端运行 Wireshark 以向自己证明当客户端调用接收或读取之类的内容时没有发送任何内容。与客户端交换少量数据以设置套接字,但是一旦设置好套接字,读取时客户端不会发送任何数据。
一些背景信息可以在 Beej's Guide 中找到。
关于php - socket client查数据时socket server是 "hit"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15615446/