请问怎么用pfsockopen上以同一个端口收发数据呢,我做了三次发送,可是只接到了一次HTTP回应,不知道怎样做在同一个本地端口同服务器80端口做通讯。代码如下:
if(!$sock=pfsockopen("www.xxx.cn", 80, &$errno, &$err,1000))
  die("Couldn't connect to ABC");
$req1 = "GET /a.jsp HTTP/1.1\r\n"
     . "Host: www.xxx.cn\r\n\r\n";
fputs($sock, $req1);    //发送第一次socket
while(!feof($sock)){
   $reply1 .= fgets($sock, 10240);          
   
   if(feof($sock))
      break;
}
   $req2 = "GET /b.jsp HTTP/1.1\r\n"
     . "Referer: http://www.xxx.cn?a.jsp?a=1\r\n"
     . "Cookie: JSESSIONID=".$jsid."\r\n"
     . "Host: www.miibeian.gov.cn\r\n"
     . "$conn\r\n\r\n";fputs($sock, $req2);     //发送第二次socket
while(!feof($sock)){
   $reply2 .= fgets($sock, 10240);
   if(feof($sock))
      break;$req3 = "POST /c HTTP/1.1\r\n"
     . "Referer: http://www.xxx.cn/b.jsp?a=1\r\n"
     . "Content-Type: application/x-www-form-urlencoded\r\n"
     . "Host: www.miibeian.gov.cn\r\n"
     . "Content-Length: $clength\r\n"
     . "\r\n$cmd\r\n\r\n";
fputs($sock, $req3);         //发送第一次socket
while(!feof($sock)){
   $reply3 .= fgets($sock, 10240);
   if(feof($sock))
      break;
}fclose($sock);              //关闭
unset($sock);echo "<br>step 1 start!<br>";
echo "<font color=red>".$req1."</font>";    
echo $reply1."<br>";
echo "<br>step 2 start!<br>";
echo "<font color=red>".$req2."</font>";
echo $reply2."<br>";
echo "<br>step 3 start!<br>";
echo "<font color=red>".$req3."</font>";
程序测试结果:
只能够echo出$req1,其他的两步都没有响应,后来用抓包工具多次测试,三次发送均在同一端口,第一次可收到服务器的回应,
后面两次,只抓到了出去的包,没有响应回来,这是为什么?请高手解答。