当套接字客户端检查数据时,套接字服务器是否会受到影响?

我已经设置了一个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()的次数越多,服务器的负载越高吗?还是它完全不受影响?

点赞
用户1761845
用户1761845

不,套接字接收不会“击中”服务器。如果可能的话,您可以在服务器端运行Wireshark,以证明客户端在调用接收或读取时未发送任何内容。与客户端交换了少量数据以设置套接字,但是一旦套接字设置完成,客户端在读取时不会发送任何内容。

一些背景信息可在Beej's Guide中找到。

2013-03-26 01:48:48