Problème avec un client socket
Publié : 26 sept. 2006, 15:44
Bonjour,
Ca fait plusieurs jours que je me casse la tête et tout conseil serait grandement apprécié
J' essaie d'utiliser Firefox comme client connecté à une socket.
Pour cela j'ai à peine modifié l'exemple donné sur http://www.xulplanet.com/tutorials/mozsdk/sockets.php .
Le serveur (qui vient d'un programme écrit en Prolog) accepte bien la connection du client mais ne recoit pas la requète à moins que je ne ferme totalement Firefox... Ce qui n'est pas très pratique
Dans l'exemple donné sur xulplanet "flush" n'est pas utilisé et je ne sais pas si c'est un oubli. Néanmoins que je l'utilise ou non après "write" ne change rien à mon problème.
Merci de votre aide,
Aurelien
PS:voici le code:
Message envoyé avec : Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.2 (like Gecko) Kubuntu 6.06 Dapper
Ca fait plusieurs jours que je me casse la tête et tout conseil serait grandement apprécié

J' essaie d'utiliser Firefox comme client connecté à une socket.
Pour cela j'ai à peine modifié l'exemple donné sur http://www.xulplanet.com/tutorials/mozsdk/sockets.php .
Le serveur (qui vient d'un programme écrit en Prolog) accepte bien la connection du client mais ne recoit pas la requète à moins que je ne ferme totalement Firefox... Ce qui n'est pas très pratique

Dans l'exemple donné sur xulplanet "flush" n'est pas utilisé et je ne sais pas si c'est un oubli. Néanmoins que je l'utilise ou non après "write" ne change rien à mon problème.
Merci de votre aide,
Aurelien
PS:voici le code:
Code : Tout sélectionner
var p = 56459;
var host = "127.0.0.1";
var outputData = "write('hullo').";
var transportService =
Components.classes["@mozilla.org/network/socket-transport-service;1"]
.getService(Components.interfaces.nsISocketTransportService);
var transport = transportService.createTransport(null,0,host,p,null);
var outstream = transport.openOutputStream(0,0,0);
var len = outputData.length;
outstream.write(outputData,len);
outstream.flush();
var instream = transport.openInputStream(0,0,0);
var scriptablestream = Components.classes["@mozilla.org/scriptableinputstream;1"]
.createInstance(Components.interfaces.nsIScriptableInputStream);
scriptablestream.init(instream);
var dataListener = {
data : "",
onStartRequest: function(request, context){},
onStopRequest: function(request, context, status){
instream.close();
outstream.close();
},
onDataAvailable: function(request, context, inputStream, offset, count){
this.data += instream.read(count);
},
};
var pump = Components.classes["@mozilla.org/network/input-stream-pump;1"].
createInstance(Components.interfaces.nsIInputStreamPump);
pump.init(instream, -1, -1, 0, 0, true);
pump.asyncRead(dataListener,null);
Message envoyé avec : Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.2 (like Gecko) Kubuntu 6.06 Dapper