[php]
salim81
Messages postés
19
Statut
Membre
-
crabs Messages postés 909 Statut Membre -
crabs Messages postés 909 Statut Membre -
bonjour a tous!
bon j'ai réalisé une socket client php qui envoi un "BEGIN" et une socket serveur java qui reçoi le message et repond par "END".mon probleme lors de l'execution du socket client :
- je reçoi un affichage comme ci-dessous:
connexion OK.
Envoi de la requête.OK.
Lire la réponse : END END END END END
Fatal error: Maximum execution time of 30 seconds exceeded in ....
mon code source est:
client.php
<?php
$fp = fsockopen("localhost",4000, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else
{
echo "connexion OK.<br>";
}
$in = "BEGIN\r\n\r\n";
$in .= "Host: localhost\r\n";
$in .= "Connection: Close\r\n\r\n";
$out = '';
echo "Envoi de la requête.";
fwrite($fp, $in, strlen($in));
echo "OK.<br>";
echo "Lire la réponse : ";
while ($out = fgets($fp, 2048)) {
echo $out;
}
echo "Fermeture de la socket...";
fclose($fp);
echo "OK.<br>";
?>
serveur.java
package test;
import java.io.*;
import java.net.*;
public class Serveur {
static final int port = 4000;
public static void main(String[] args) throws Exception {
ServerSocket s = new ServerSocket(port);
Socket soc = s.accept();
// Un BufferedReader permet de lire par ligne.
BufferedReader plec = new BufferedReader(
new InputStreamReader(soc.getInputStream())
);
// Un PrintWriter possède toutes les opérations print classiques.
// En mode auto-flush, le tampon est vidé (flush) à l'appel de println.
PrintWriter pred = new PrintWriter(
new BufferedWriter(
new OutputStreamWriter(soc.getOutputStream())),
true);
while (true) {
String str = plec.readLine();
String endTask="END"; // lecture du message
if (str.equals("BEGIN"))
System.out.println("ECHO = " + str); // trace locale
pred.println(endTask); // renvoi d'un écho
}
}
}
je sais pas comment resoudre le probleme.
svp si quelqu'un a une idee merci de me donner un indication!
cordialement!
bon j'ai réalisé une socket client php qui envoi un "BEGIN" et une socket serveur java qui reçoi le message et repond par "END".mon probleme lors de l'execution du socket client :
- je reçoi un affichage comme ci-dessous:
connexion OK.
Envoi de la requête.OK.
Lire la réponse : END END END END END
Fatal error: Maximum execution time of 30 seconds exceeded in ....
mon code source est:
client.php
<?php
$fp = fsockopen("localhost",4000, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else
{
echo "connexion OK.<br>";
}
$in = "BEGIN\r\n\r\n";
$in .= "Host: localhost\r\n";
$in .= "Connection: Close\r\n\r\n";
$out = '';
echo "Envoi de la requête.";
fwrite($fp, $in, strlen($in));
echo "OK.<br>";
echo "Lire la réponse : ";
while ($out = fgets($fp, 2048)) {
echo $out;
}
echo "Fermeture de la socket...";
fclose($fp);
echo "OK.<br>";
?>
serveur.java
package test;
import java.io.*;
import java.net.*;
public class Serveur {
static final int port = 4000;
public static void main(String[] args) throws Exception {
ServerSocket s = new ServerSocket(port);
Socket soc = s.accept();
// Un BufferedReader permet de lire par ligne.
BufferedReader plec = new BufferedReader(
new InputStreamReader(soc.getInputStream())
);
// Un PrintWriter possède toutes les opérations print classiques.
// En mode auto-flush, le tampon est vidé (flush) à l'appel de println.
PrintWriter pred = new PrintWriter(
new BufferedWriter(
new OutputStreamWriter(soc.getOutputStream())),
true);
while (true) {
String str = plec.readLine();
String endTask="END"; // lecture du message
if (str.equals("BEGIN"))
System.out.println("ECHO = " + str); // trace locale
pred.println(endTask); // renvoi d'un écho
}
}
}
je sais pas comment resoudre le probleme.
svp si quelqu'un a une idee merci de me donner un indication!
cordialement!
A voir également:
- [php]
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour à la ligne php ✓ - Forum PHP
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP