2

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

PHP 手册中:

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 中创建了一个新帐户。

4

1 回答 1

4

也许看看 Delphi 附带的 Indy Components(至少假设 Delphi7)。你需要:

TIdTCPConnection 文档

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

TIdTCPConnection.IOHandler 属性

TIdIOHandler 文档

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

TIdHTTP 文档

于 2012-06-11T15:48:22.517 回答