什么是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中创建一个新帐户。
答案 0 :(得分:4)
或许看一下Delphi附带的Indy组件(假设至少是Delphi7)。你需要:
TIdTCPConnection Documentation
,其中包含IOHandler
属性(TIdIOHandler),您可以在其中指定fsockopen
中使用的参数:
TIdTCPConnection.IOHandler Property
然而,正如其他人所指出的那样,通过查看PHP代码中的大局并使用更高级别的工具(如TIdHTTP
)实现其功能,您可能会得到很好的服务: