Php] se connecter sur un port IP distant et traite

voila j ai un port distant sur une machine ou je dois me connecter.

Cette machine va m envoyer des trames ip que je dois traiter et par exemple mettre dans un fichier

déja es ce possible de faire ca en php?
je sais qu en php il y a au moins les socket…?
aussi plus c est proche du temps reel mieux c est :slight_smile:

par contre il est certain que le script devra rester perpetuellement conencte sur le port en question sans timeout

merci d avance!

Tu as déjà set_time_limit()

Pour le reste tout est là :

http://fr.php.net/manual/fr/ref.network.php

merci!

je vais etudier tout ca et pondre un code ensuite :slight_smile:

voila le code que j ai fait volonrairement simple pour l instant:


<?php
$fp = pfsockopen("127.0.0.1", 80);
if (!$fp) 
	{
    echo "$errstr ($errno)<br />\n";
	} 
	else 
  {
  $out = fgets($fp);
  $fp2=fopen("c:/coucou.txt","r+");
    	fwrite($fp2, $out);
  }
?> 

malheuresement le fichier coucou.txt reste vide perpetuellement alors que je suis sur internet…

Et t’as tenté un petit echo $out voir ce que tu avais obtenu?

c plus complique que ca malheuresement

en fait j ai la forte conviction qu en realite la connexion sur le port 80 echoue, car clairement il essai de se connecter et au bout de 30s il me met un timeout

tu devrais écrire dans un fichier logs les erreurs de connexions, non?

heu oui…ms comment on fait?

fopen(a)+fwrite+fclose ?


$fp = pfsockopen("127.0.0.1", 80);
if (!$fp) 
	{
    echo "$errstr ($errno)<br />\n";
	$fp2=fopen("c:/erreur.txt","a+");
    fwrite($fp2, $errstr);
	} 
	else 
  {
  $out = fgets($fp);
  $fp2=fopen("c:/coucou3.txt","a+");
    	fwrite($fp2, $out);
  }

comme ca?
ms si c ca j ai aucun fichier qui se cree


out = fgets($fp);

c est cette ligne qui le plante

N’oublie pas non plus de fermer les descripteurs de fichier (fclose …)

Pour ton erreur, désolé je ne vois pas.

dc si je comprends bien mon code est syntaxiquement et "logiquement" correct…c est deja ca

j essayerais sur un autre pc le mien m a pose des pb qd je voulais surveiller des ports…

non meme pb…