就具有更好的性能和更少的开销而言,这两个套接字连接选项中哪个更有效?
socket_connect 家族还是 fsockopen ?
最佳答案
据我所知性能大同小异,但是初始化后连接的结果不同。例如 fsockopen()
将打开连接并立即转到 LISTENING
-state,其中 socket_create()
将创建连接,socket_open()
将其放入 LISTENING
-state。
你可以说:fsockopen() === socket_open(socket_create(), ADDRESS)
此外,在您执行 socket_shutdown()
和 socket_close()
之后,您会将连接留在 TIME_WAIT
-state,这将使套接字等待直到套接字的接收端断开连接,这可能需要一段时间。
总而言之,大同小异,选择你最喜欢的,最适合你的意图的。如果您想预先创建所有套接字但只在特定时间连接,请使用 socket_create()
,否则使用 fsockopen()
,因为它更容易。
如果您有自己的网络服务器并且不打算分发您的代码,您还可以查看 cURL,它与其他两个选项基本相同,但内置了更多的故障保存。
关于php - 套接字性能和开销,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6236925/