是套接字服务器“命中”;套接字客户端检查数据时


Is socket server "hit" when socket client checks for data?

我设置了一个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,以证明当客户端调用诸如receive或read之类的操作时没有发送任何内容。与客户端交换少量数据以建立套接字,但是,一旦套接字建立,客户端在读取时不会发送任何数据。

一些背景信息可以在Beej的指南