PHP로 MSN 클라이언트를 만들고 있습니다.세션의 PHP pfsockopen
$server2 = explode(":", $xfr[3]);
$socket2 = pfsockopen($server2[0], (int)$server2[1]);
$_SESSION["socket"] = $socket;
echo '<b>Connected to 2nd server.</b><br />';
//Send MSNP version
fputs($socket2, "VER 0 MSNP10 CVR0\r\n");
echo fread($socket2, 5000) . '<br />';
//Send user-agent
fputs($socket2, "CVR 1 0x0409 php ".phpversion()." i386 MSNMSGR 7.0.0000 MSMSGS ".$_POST["username"]."\r\n");
echo fread($socket2, 5000) . '<br />';
//Send username
fputs($socket2, "USR 2 TWN I ".$_POST["username"]."\r\n");
//Read USR
$usr = fread($socket2, 5000);
echo $usr . '<br />';
$usr = explode(" ", $usr);//This is for later usage.
가 지금은 다른 페이지 (AJAX/status.php
)이 소켓을 사용할 필요가 : 나는 MSN에있는 서버 및 로그에 연결이 코드를 가지고있다. php.net은 연결 상태를 유지한다고 말합니다. 그러나이 status.php이다 AJAX를 통해 호출되는, (단지 [ "CID"] $ _SESSION을 무시) :
<?php
session_start();
fputs($_SESSION["socket"], "CHG 12 " . $_GET["s"] . " " . $_SESSION["cid"], 5000);
echo fread($_SESSION["socket"]);
상태를 변경해야한다. 이 오류 얻을 :
<br />
<b>Warning</b>: fputs(): supplied argument is not a valid stream resource in <b>C:\wamp\apps\msnphp\AJAX\status.php</b> on line <b>3</b><br />
<br />
<b>Warning</b>: Wrong parameter count for fread() in <b>C:\wamp\apps\msnphp\AJAX\status.php</b> on line <b>4</b><br />
내 소켓이 지속적를, 그리고 ID가 세션 변수 $ _SESSION [ "소켓"]에 저장되어 있습니다. 왜 작동하지 않는지 나는 이해하지 못한다.
Windows XP Professional SP2를 WAMP (Apache, MySQL 및 PHP) 서버와 함께 서버로 사용합니다.
아무도 도와 줄 수 있습니까? 감사!