我试图在 php 中创建一个套接字并从其他进程中重用它。
我知道这可以使用守护程序脚本来完成,但我想不这样做。
我创建了一个套接字并将其绑定(bind)到特定端口。
$sock = socket_create (AF_INET, SOCK_STREAM, SOL_TCP);
socket_set_option ($sock, SOL_SOCKET, SO_REUSEADDR, 1);
socket_bind ($sock, 'xx.xx.xx.xx', 10000);
socket_connect ($sock, $host, $port);
从另一个 php 文件我做了同样的事情。但是我从 2 文件发送的数据包没有被主机“验证”。我嗅探了所有端口,发现它使用相同的本地和目标端口。我不明白问题出在哪里。
你能帮我解决这个问题吗?
任何其他编程语言或任何其他解决方案都可以。
安德鲁
最佳答案
socket 不是对称的。服务器端监听客户端连接的特定端口 - 客户端不指定本地端口 - 仅指定远程端口和地址。它与您实现它的语言无关。
http://www.phpclasses.org/browse/package/5758.html 上有一个非常好的套接字服务器实现。举例。
C。
关于php - 可重复使用的 socket ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2506694/