我的网络托管公司只允许fsockopen函数创建套接字。我正在构建一个需要TCP服务器来传输消息的Android应用程序。所以我的问题是用fsockopen构建TCP服务器而不使用socket_create是可行的吗?任何帮助或建议都非常感谢。
答案 0 :(得分:2)
fsockopen()
仅创建客户端套接字 。无法使用该功能创建侦听套接字。
在PHP中创建侦听(服务器)TCP套接字的唯一方法是使用Streams extension(请参阅stream_socket_server()
) - 您可能会发现这也是可用的 - Sockets extension ,这种可能性较小。
即使您可以创建侦听套接字,您可能会发现除非您可以控制服务器的防火墙,否则无法对其进行任何有用的操作。
答案 1 :(得分:1)
不,这是不可能的,因为fsockopen
只能用于启动连接。
如果您坚持使用非HTTP TCP连接,则可以让服务器连接回客户端。但这会破坏(NAT)防火墙背后的客户端。
否则,您可以简单地使用HTTP,这至少允许从服务器到客户端的流式传输。 (通过禁用输出缓冲,可能还需要一些额外的flush
次呼叫)