Socket Java transformé en socket PHP (pour afficher les infos sur une page web)
Bonjour,
Je cherche à transformé ma requete java en php.
Et j'ai une erreur dès que j'envoi la requête avec write_socket().
Voici mon code test:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
| <?php
class Socket {
private $_id;
private $_socket;
private $_adresse;
private $_port;
private $_result;
private $_requete;
function CreateSocket(){
error_reporting(E_ALL);
echo "<h2>Connexion TCP/IP</h2>\n";
/* Crée un socket TCP/IP. */
$this->_socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($this->_socket === false) {
echo "socket_create() a échoué : raison : " . socket_strerror(socket_last_error()) . "\n";
} else {
echo "OK.Création du socket\n";
}
}
function ConnectSocket(){
$_adresse="192.168.0.250";
$_port=5001;
$this->_result = socket_connect($_socket, $_adresse, $_port);
if ($_socket === false) {
echo "socket_connect() a échoué : raison : ($_result) " . socket_strerror(socket_last_error($_socket)) . "\n";
} else {
echo "OK Connection à ".$_adresse." et ".$_port.".\n";
}
}
function SendReq(){
echo "Envoi de la requête";
$_requete = "#00016A---0002DATR0;3E71\n";
//$byte_array = unpack('C*', $_requete);
//echo $byte_array;
//var_dump($byte_array);
if(!socket_write($_socket, $_requete, strlen($_requete))) {
echo "socket_write() errror!\r\n";
}
flush();
}
function ReadReq(){
echo "Read...";
/*echo "Lire la réponse : \n\n";
while ($out = socket_read($_socket, 2048)) {
echo "Reponse: ".$out;
}*/
$buf = socket_read($_socket, 2048, PHP_NORMAL_READ);
echo "test:". $buf;
}
function CloseSocket(){
echo "Fermeture du socket...";
socket_close($_socket);
}
}
?>
<?php
require 'Socket.class.php';
$socket= new Socket;
$socket->CreateSocket();
$socket->ConnectSocket();
$socket->SendReq();
$socket->ReadReq();
$socket->CloseSocket();
?> |
Le problème est que j'ai l'erreur socket_write() errror!\r\n
Je n'ai pas compris si il faut transformer le string en byte array avant de l'envoyer.
Edit> J'ai trouvé
La dernière fois que j'ai programmer en php c'était avec php4 et j'ai jamais créer de fichier class.
L'erreur se trouve uniquement dans la variable $socket, apparement, il fallait mettre $this->_socket à la place.
Vu que mon serveur n'affiche pas les erreurs php, j'ai trouvé l'erreur en installant apache pour des tests.
Désolé
Merci à vous.