2011-04-27 73 views
0


一个简单的简短问题我可以通过主机的ip在fsockopen()函数中而不是它的名字吗?我需要设置2个服务器之间的连接,现在我必须在同一台计算机上工作,我从来没有使用过fsockopen,所以一个简单的例子是赞赏 在此先感谢=)PHP fsockopen()

+3

有可能设置眼。请参阅手册中的示例:http://php.net/fsockopen – 2011-04-27 11:37:01

回答

3

我说,而是采用fsockopen()到两台服务器之间做HTTP,它会更容易使用curl然后,因为它已经拥有什么,你将需要。

从技术上讲,如果您使用fsockopen()进行HTTP通信,您将开发另一个HTTP客户端。作为卷曲的HTTP客户端,我看不到有必要推倒重来^^

编辑

让您真正必须使用fsockopen()

好的。这是一个链接到西蒙Willisons PHP HTTP client。也许它已经过时了,并且只涵盖了HTTP客户端功能的一小部分,但它带有源代码,可以帮助您掌握如何使用fsockopen来执行HTTP请求。

+0

curl和servlet一样吗?! 我认为ts不可能我应该使用btw不工作的fsockopen!我不知道它是谷歌还是我,但我无法找到从哪里开始!:( – dimazaid 2011-04-27 12:55:25

+0

@ user635614:只需点击我的答案第一段中的'curl'链接,这应该让你开始。 servlet,它是一个PHP扩展。 – 2011-04-27 12:59:30

+0

我做到了!但是我告诉过你,我们必须使用fsockopen()!:(这是一个课程项目! – dimazaid 2011-04-27 13:15:12

1

例如

fsockopen(gethostbyaddr("127.0.0.1"), ... 
+0

谢谢, 因此每个“服务器”必须放在不同的端口上以便能够在它们之间进行通信? – dimazaid 2011-04-27 11:42:49

+0

你打算怎么处理这个连接?如果他们要沟通,我认为肥皂是一个更好的方法http://php.net/manual/en/book.soap.php – Flask 2011-04-27 11:48:10

+0

我必须从客户端获取数据发送到服务器使用Ajax并将其发送到其他服务器根据请求...我从来没有使用fsockopen(),所以我不知道从哪里开始!它必须使用它... – dimazaid 2011-04-27 11:55:45

0

使用fsockopen函数并不安全。由于安全原因托管服务提供商常常禁用此功能,托管服务提供商也可以通过防火墙防止与其他计算机的外部连接。

如果你想通过一个服务器从另一个服务器使用PHP获得的东西,只需使用CURL。你需要安装curl php扩展才能使用它。

<?php 
$ch = curl_init(); 

curl_setopt($ch, CURLOPT_URL, "http://yourserver.com/"); 
curl_setopt($ch, CURLOPT_HEADER, 0); 

$r = curl_exec($ch); 
curl_close($ch); 
?> 

此外,如果你使用Zend框架,你可以在Zend_Http_Adapter_Curl类