2013-01-20 58 views
1

我有一個連接到irc服務器並在連接期間發送一些命令的套接字。加速fsockopen

似乎是這樣的:

 $socket = @fsockopen(IRCIP, IRCPORT, $errno, $errstr, IMEOUT); 
    stream_set_timeout($socket, TIMEOUT); 
     fputs($socket, "SVSLIST\n"); 

但它需要有點長(大多是0.5秒,但有時其高達1.5秒),更何況,這兩個PHP腳本和IRC服務器工作在同一臺機器上。

所以我想問一下如何加快這個過程?我正在使用不同類型的機制(在該irc服務器中構建一個httpd服務器作爲模塊,並重定向readfile來執行查詢)來執行該操作,這非常快。有沒有提高速度的方法? 謝謝。

回答

0

的fsockopen的最後一個參數()是超時,將其設置爲較低的值,以使腳本的完成速度較快,像這樣:

$socket = @fsockopen(IRCIP, IRCPORT, $errno, $errstr, 0.1); 

而且......你要知道,這樣的代碼:

$socket = fsockopen('www.mysite.com', 80); 

比方法要慢:

$socket = fsockopen(gethostbyname('www.mysite.com'=, 80); 

最後一件事......如果你的腳本來運行本地在IRC服務器的同一臺機器上,只需使用127.0.0.1來連接而不是機器公共IP地址。

+0

我已經使用IP地址而不是主機名。應該和你的建議一樣。讓我試試超時值。謝謝。 – jamall55