From what I've seen, cURL should work on your OS. Could always try using sockets or something anyways. I know for the lucky dip curl was giving me all sorts of trouble when I was attempting to submit large amounts of post data (i.e. large inventory). I think this is what I did:

PHP Code:
$strPost 'environment=0&txt='.urlencode('xtitle="<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Trans');
foreach(
$Items[1] as $val)
    
$strPost .= urlencode('xtitle="'.$val.'" hidden_src="http://');


$strPost .= urlencode("Gold: ".$strGold."\t\t\t                    ");

$Ref="http://www.tektek.org/gaia/worth.php";
$URL="http://www.tektek.org/gaia/worth.php";

$Header .= "POST /gaia/worth.php HTTP/1.1\r\n";
$Header .= "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*\r\n";
$Header .= "Referer: http://www.tektek.org/gaia/worth.php\r\n";
$Header .= "Accept-Language: en-us\r\n";
$Header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$Header .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)\r\n";
$Header .= "Host: www.tektek.org\r\n";
$Header .= "Content-Length: ".strlen($strPost)."\r\n";
$Header .= "Connection: Close\r\n\r\n";

$Header .= $strPost;

$strHTML null;

$fp fsockopen("www.tektek.org"80$errno$errstr30);
if (! 
$fp)
    echo 
"$errstr ($errno)<br />\n";
else 
{
    
fwrite($fp$Header);
    while (!
feof($fp))
        
$strHTML .= fgets($fp128);
    
fclose($fp);

Or you can just use sockets. I have a pretty decent socket class you can use, and it just becomes:

PHP Code:
$HTML $httpSocket->HTTPRequest("POST"$URL$Post, array("Referer" => $Ref));