请教一个问题:关于fsockopen()。<?php    $errno="ooooooooooooooooooooooo";
    $errstr="nnononoonononoononon";
    $fp = @fsockopen("auth.smtp.1and1.fr",587, $errno, $errstr, 30);
      // $fp=fsockopen("php.wilson.gs", 80, &$errno, &$errstr, 10);
      if($fp) {
                  echo "connenct";
               
        } else {
               
                echo "wrong";
               
        }?>
这段代码在自己的机子上运行正确,也就是我能够通过端口587连接到auth.smtp.1and1.fr,
但是 当我把他穿到服务器上的时候 为什么 就不能正常运行哪。
我感觉有以下几种情况:
1.fsockopen()函数在服务器上不能运行!这个可能吗?
2.从服务器上通过port:587连接到auth.smtp.1and1.fr不能连接,也就是说smtp服务器名错误或端口错误。这个可能吗??但是 我们能够通过587连接到auth.smtp.1and1.fr 上,为什么服务器又不能哪??是服务器的原因 还是怎么回事啊!!急急急急急急!!!等待高手!我都快哭了!!!!!!

解决方案 »

  1.   

    到你的服务器上 telnet auth.smtp.1and1.fr 587 看看或许你的服务器没有配置DNS, 看看 telnet 212.227.15.184 587 行不行而且不能运行,也要说出返回了什么信息或错误 
      

  2.   

    在服务器上运行:
    <?php    
        $fp = @fsockopen("auth.smtp.1and1.fr",587, $errno, $errstr, 30);
         
          if($fp) {
                      echo "connenct";
                 
            } else {
                 
                   echo $errno; 
                 echo $errstr;
                 
            }?> 
    说是“Connection refused”,也就是说无法使用并连接到auth.smtp.1and1.fr 587上去了??但是为什么从我本机上可以使用telnet auth.smtp.1and1.fr 587。
      

  3.   

    这就对了,连接不上服务嚣,也就是说你的服务器本身无法连接,你试一下域名是能能解释tracert auth.smtp.1and1.fr或直接 在服务器上telnet auth.smtp.1and1.fr 587估计不通