Je rencontre un problème lors de l'utilisation de sockets dans Flash Builder 4. Le code ci-dessous envoie un ensemble d'octets à un cbox sockerServer de réception. Si je rejette l'erreur que je reçois dans Flash Builder manuellement, les octets sont envoyés correctement et tout se passe comme prévu sur 127.0.0.1:10. Maintenant, si je pouvais juste obtenir les mêmes résultats sans une erreur affichée dans Flex.Problèmes liés à Flex - Socket.close() (# 2031: Erreur de socket)
Donc, j'ai deux questions:
1) Pourquoi il renvoie une erreur lorsque je tente de fermer le socket? Voir closeConnection() ci-dessous pour le contexte. J'ai essayé de le rincer juste avant, ce qui n'a pas aidé.
2) Pourquoi rien n'est envoyé lorsque j'utilise socket.flush()?
package
{
import flash.events.IOErrorEvent;
import flash.net.Socket;
import flash.utils.ByteArray;
public class socketClient
{
private var socket:Socket;
public function openConnection(address:String, port:int):void
{
if (socket != null && socket.connected)
socket.close();
socket = new Socket();
try {
socket.connect(address, port);
}
catch(e:Error) { }
}
public function sendProtocol(p:socketProtocol):void {
//p.serialize() gets me a bunch of bytes in a ByteArray
var buffer:ByteArray = p.serialize();
socket.writeBytes(buffer, 0, buffer.length);
//Nothing happens when I flush
socket.flush();
}
public function closeConnection():void {
//As soon as I get to socket.close(), I get this
//"Unhandled IOErrorEvent:. text=Error #2031: Socket Error."
socket.close();
}
}
}
J'utilise la classe comme ceci:
var socket:socketClient = new socketClient();
//works fine, I see the connection on the server
socket.openConnection("127.0.0.1", 10);
//no errors, but nothing sent
socket.sendProtocol(protocol);
//returns the error. (if manually dismissed, data is sent)
socket.closeConnection();
Problème similaire: http://stackoverflow.com/questions/3645988/socket-error-sometimes –
Oui, j'en ai vu un et j'ai essayé d'ajouter l'événement: IOErrorEvent. Cela ne m'a pas aidé à comprendre le problème. Je n'ai pas non plus de problème pour ouvrir la prise. Se connecte bien sur le serveur de réception. – BlueVoodoo
Juste ajouté au fond. – BlueVoodoo