就具有更好的性能和更少的开销而言,这两个套接字连接选项中哪个更有效?

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/

10-12 14:41
查看更多