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

4

我已经建立了一个PHP服务器,每秒钟向套接字进行写入。

while(1) {
  $message = "Hello, World!";
  socket_write($socket, $message, strlen($message));
  sleep(1);
}

我有一个使用Lua编写的客户端(Corona SDK),每隔1/10秒检查一次socket以获取数据:

timer.performWithDelay(100, function() sock:receive() end, 0) end

我的问题是:每次运行sock:receive()时,服务器是否会被“命中”?还是说sock:receive()只检查本地缓冲区?
换句话说:每次运行sock:receive()时,服务器是否会承受更多负载?或者说完全不受影响?

据我所知,定时器运行在一个线程上,并且除非被错误或明确地被您中断,否则它将在没有您的帮助下继续工作。 - PurityLake
1个回答

0
不,套接字接收并不会“触发”服务器。如果可能的话,您可以在服务器端运行Wireshark来证明当客户端调用类似receive或read的函数时没有发送任何数据。与客户端交换少量数据以设置套接字,但是一旦套接字设置完成,客户端在读取时不会发送任何数据。 Beej's Guide中提供了一些背景信息。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接