什么是Delphi相当于php中的“fsockopen”函数?

时间:2012-06-11 15:18:56

标签: php delphi

什么是Delphi相当于php中的“fsockopen”函数?

PHP Manual中的

resource fsockopen ( string $hostname [, int $port = -1 [, int &$errno [, string &$errstr     [, float $timeout = ini_get("default_socket_timeout") ]]]] )
Initiates a socket connection to the resource specified by hostname.

我的代码完整:

function accountcreate($username, $password, $connection, $bandwidth, $disabledate,  $disabletime)
{
$adminpassword='';
$adminport=82;
$proxyaddress='127.1.1.1';

$fp = fsockopen($proxyaddress, $adminport, &$errno, &$errstr, 1000);
if(!$fp) 
{
        echo "$errstr ($errno)<br>\n";
} 
else 
{
    $url_ = "/account";
    $url = "add=1"."&";
    .
    .
    $url = $url."userid=-1";
    $len = "Content-Length: ".strlen($url);
    $auth = "Authorization: Basic ".base64_encode("admin:".$adminpassword);
    $msg = "POST ".$url_." HTTP/1.0\r\nHost: ".$proxyaddress."\r\n".$auth."\r\n".$len."\r\n"."\r\n".$url;
    fputs($fp,$msg);
    echo $msg;

    fclose($fp);
}

该代码在ccproxy中创建一个新帐户。

1 个答案:

答案 0 :(得分:4)

或许看一下Delphi附带的Indy组件(假设至少是Delphi7)。你需要:

TIdTCPConnection Documentation

,其中包含IOHandler属性(TIdIOHandler),您可以在其中指定fsockopen中使用的参数:

TIdTCPConnection.IOHandler Property

TIdIOHandler Documentation

然而,正如其他人所指出的那样,通过查看PHP代码中的大局并使用更高级别的工具(如TIdHTTP)实现其功能,您可能会得到很好的服务:

TIdHTTP Documentation