2009-09-08 3 views
2

PHP로이 C# 프로그램을 복사 할 수 있습니까?PHP 네트워킹 소켓

 var chatsrv = new IPEndPoint(IPAddress.Parse(_charUrl), _chatPort); 
     _chatsocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); 
     _chatsocket.Connect(chatsrv); 
     var ns = new NetworkStream(_chatsocket); 
     _nw = new BinaryWriter(new BufferedStream(ns)); 
     var nr = new BinaryReader(ns); 

     _nw.Write((byte)(0xff)); 
     _nw.Write(acc.AccountId); 
     _nw.WriteUtf8String(acc.AuthCookie); 
     _nw.Write((UInt32)2); 
     _nw.Flush(); 

     var response = nr.ReadBytes(nr.ReadInt32()); 

답변

1

아마이 :


$chatsocket = fsockopen('IP address', $chatPort); 
if ($chatsocket == FALSE) die('connection failed'); 

fwrite($chatsocket, "\xff"); 
fwrite($chatsocket, $accountId); 
fwrite($chatsocket, utf8_encode($authCookie)); 
// memdump of 2 as little-endian 32-bits unsigned int (intel representation) 
fwrite($chatsocket, "\x02\x00\x00\x00"); 

$bytes = fread($chatsocket, 4); 

// convert little-endiang 32-bits unsigned int into PHP number 
$bytes = ord($bytes[0]) | (ord($bytes[1]) << 8) | (ord($bytes[2] << 16) | (ord($bytes[3] << 24); 


$response = ''; 
// wait for the entire block 
while (!feof($chatsocket) && (strlen($response) < $bytes)) 
$response .= fread($chatsocket, $bytes - strlen($response)); 

+0

이 사람이 그 메시지의 크기를 지정 접두어로 메시지를 사용하는 응용 프로그램에 PHP에서 통신하려는 경우 해결책인가? 이 기본적인 질문에 대한 미안하지만 (아직) 전문 개발자 아니에요 ... – Mike