Zurück   Flashforum > Flex und AIR > Adobe AIR

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 29-03-2009, 22:11   #1 (permalink)
Neuer User
 
Registriert seit: Jul 2002
Beiträge: 17
XMLSocket bricht Verbindung ab

Hallo,

ich habe eine Flex-Applikation, die sich mit einem lokalen Server verbindet:
serialServer=new XMLSocket;
serialServer.connect("127.0.0.1",9001);
Klappt alles wunderbar. Beide können Daten senden und empfangen.

Jetzt habe ich diesen Code auf AIR umgestellt. Nun bricht die Verbindung scheinbar nach kurzer Zeit ab. Ich fange alle Events des XMLSocket ab und bekomme keine Fehler.

Ich bekomme die erfolgreiche Verbindung bestätigt mit:
[Event type="connect" bubbles=false cancelable=false eventPhase=2]
Die Verbindung steht dann ca. 1 Sekunde, in der ich gut 10 Nachrichten vom Server zum Client schicken kann. Bis zum Abbruch bekomme ich mit serialServer.connected ein true.

Der Java-Server bringt dann die Fehlermeldung:
java.net.SocketException: Broken pipe
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutp utStream.java:92)
at java.net.SocketOutputStream.write(SocketOutputStre am.java:115)
Wie gesagt, der gleiche Code mit Flex funktioniert und der Empfang der Nachrichten vom Server wird nicht beendet.

Eine Sicherheitseinstellung (<policy-file-request>) sollte es nicht betreffen, da ich lokal verbinde und die Verbindung ja auch zustande kommt.

Danke für Tipps...
jweber ist offline   Mit Zitat antworten
Alt 09-08-2009, 12:57   #2 (permalink)
Neuer User
 
Registriert seit: Aug 2009
Beiträge: 5
Hallo jweber,

hast das Problem lösen können?
ich schreibe gerade meine Diplomarbeit, und teste dafür Air-Technologie.
leider habe ich nicht herausfinden können, wie ich mit meine Air-Applikation die Dateien von dem Server herunterladen kann und genauso hochladen kann.
hast du eventuell einen Lösungsvorschlag für mich.
Ich komme hier nicht weiter...

Danke im Voraus
nadenka ist offline   Mit Zitat antworten
Alt 13-08-2009, 00:04   #3 (permalink)
N00b Buddha
 
Benutzerbild von Little Buddha
 
Registriert seit: Mar 2009
Beiträge: 140
Moin,

einbisschen Code wäre hilfreich

Geändert von Little Buddha (13-08-2009 um 00:06 Uhr)
Little Buddha ist offline   Mit Zitat antworten
Alt 13-08-2009, 08:32   #4 (permalink)
Neuer User
 
Registriert seit: Aug 2009
Beiträge: 5
Code ist ziemlich einfach, ich stelle die Verbindung her, wen die existiert suche ich eine Datei und schicke diese an den Server wo eine php lieg

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="551" height="141" creationComplete="init()">

<mx:Script>
<![CDATA[
import mx.controls.Alert;
import air.net.URLMonitor;
import air.update.events.UpdateEvent;
import air.update.ApplicationUpdaterUI;


//Dateifilerttypen für Datenupload

public var imageTypes:FileFilter = new FileFilter("Images (*.jpg; *.jpeg; *.gif; *.png)" ,"*.jpg; *.jpeg; *.gif; *.png");

public var videoTypes:FileFilter = new FileFilter("Video Files ( *.flv; *.avi; *.wmv; *.mpeg; *.mov)","*.flv; *.avi; *.wmv; *.mpeg; *.mov");

public var documentTypes:FileFilter = new FileFilter("Documents (*.pdf), (*.doc), (*.rtf), (*.txt)","*.pdf; *.odt; *.doc; *.rtf; *.txt");

public var compressedTypes:FileFilter = new FileFilter("Compressed Files(*.zip; *.rar)","*.zip; *.rar");

public var otherTypes:FileFilter = new FileFilter("Other Files(*.swf)","*.swf");

public var filesToFilterProjectFile:Array = new Array(imageTypes, videoTypes, compressedTypes, documentTypes, otherTypes );


[Bindable]
public var projectUploadFile_ref:FileReference = new FileReference();


//For Connention
private var monitor:URLMonitor;

public function init():void{
//check for connenction
monitor = new URLMonitor(new URLRequest("http://xserver....de/test/"));
//every 3 seconds
monitor.pollInterval = 3000;
//check for Status monitor.addEventListener(StatusEvent.STATUS,announ ceStatus);
monitor.start();
}
private function announceStatus(e:StatusEvent):void
{
if(monitor.available) statusTxt.text = "HTTP-Verbindung besteht!";
else statusTxt.text = "no connenct!";
}
private function onNetworkChange(event:Event):void{
Alert.show("Netzwerkverbindung wurde geändert!", "Info");
}
private function onError(errror:ErrorEvent):void{
trace("Error");
}


/** searchProjectFile */
public function searchProjectFile():void
{
projectUploadFile_ref = new FileReference();
projectUploadFile_ref.addEventListener( Event.SELECT, uploadProjectFileSelected );
projectUploadFile_ref.browse( filesToFilterProjectFile );

// Feld loeschen
tip_projectPath.text = '';
// Button enable false setzen
btn_projectFileUpload.enabled = false;

}

/** uploadProjectFileSelected */
private function uploadProjectFileSelected( event:Event ):void
{
var fileSizeLimit:uint = 1024*1024*100;
if (projectUploadFile_ref.size > fileSizeLimit)
{
Alert.show('Die Datei ist leider zu gross, die darf höchstens ' + fileSizeLimit / 1024 /1024 + 'MB groß sein.', 'Fehler beim Hochladen');
return;
}
tip_projectPath.text = projectUploadFile_ref.name;
btn_projectFileUpload.enabled = true;
}

/** uploadProjectFile */
private function uploadProjectFile():void
{
var sendVars:URLVariables = new URLVariables();
var request:URLRequest = new URLRequest();

sendVars.action = "uploadProject";

request.data = sendVars;

request.url = "http://xserver......de/...upload.php";
request.method = URLRequestMethod.POST;

projectUploadFile_ref.upload( request,"file", false );
projectUploadFile_ref.addEventListener( ProgressEvent.PROGRESS, onProjectUploadProgress );
projectUploadFile_ref.addEventListener( Event.COMPLETE, onProjectUploadComplete );
}

/** onProjectUploadProgress */
private function onProjectUploadProgress( event:ProgressEvent ):void
{
btn_projectFileCancel.enabled = true;
}

/** onProjectUploadComplete */
private function onProjectUploadComplete( event:Event ):void
{
btn_projectFileCancel.enabled = false;
btn_projectFileUpload.enabled = false;
}

/** cancelProjectFile */
private function cancelProjectFile():void
{
projectUploadFile_ref.cancel();
}
]]>
</mx:Script>

<mx:HBox width="539" height="129"> <mx:Label width="85" text="Projektdatei:" />

<mx:TextInput id="tip_projectPath" width="300" />
<mx:VBox height="100%" width="121">
<mx:Button label="durchsuchen" width="100" click="{ searchProjectFile() }"/>
<mx:Buttonid="btn_projectFileUpload" label="hochladen" width="100"
click="{ uploadProjectFile() }"/>

<mx:Button id="btn_projectFileCancel" label="abbrechen" width="100"
click="{ cancelProjectFile() }"/>
<mx:Text id="statusTxt" text="Text" width="118"/>
</mx:VBox>

</mx:HBox>


</mx:WindowedApplication>


php:
$file_temp = $_FILES['file']['tmp_name'];
$file_name = $_FILES['file']['name'];

define("PROJECT_PATH", "http://xserver....de/test/");
$projectpath = PROJECT_PATH;

//-- existiert der Projekt Ordner noch nicht, wird dieser angelegt
if(!file_exists($projectpath))
{
mkdir($projectpath,0777,TRUE);
chmod($projectpath,0777);
}

aber es wird nichts hochgeladen.
wenn ich PHP in AMFPHP durchlaufen lasse
bekomme ich diese Fehlermeldung:
chmod(): No such file or directory

wenn ich das richtig deute stimmt was mit den Rechten meines Servers nicht, jedoch, sind alle meine Ordner freigeben mit 0777.
der Skript läuf auch nicht auf XAMPP
das verstehe ich nicht.
kann mir vielleicht bitte einer helfen
Gruß
nadenka ist offline   Mit Zitat antworten
Alt 13-08-2009, 09:12   #5 (permalink)
Neuer User
 
Registriert seit: Dec 2005
Ort: Oldenburg
Beiträge: 2.408
Bitte mal eben (per Edit) die Actionscript Tags um Deinen Code setzen... So macht das Lesen wenig Spaß.
__________________
Mein Blog
Freue mich über jeden Besucher. :)
Nico B. ist offline   Mit Zitat antworten
Alt 13-08-2009, 10:11   #6 (permalink)
Neuer User
 
Registriert seit: Aug 2009
Beiträge: 5
PHP-Code:
<?php

// Datei die hochgeladen wird
$file_temp $_FILES['file']['tmp_name'];
$file_name $_FILES['file']['name'];

define("PROJECT_PATH""http://xserver.de/test/");

        
//-- Pfad fuer das neue Projekt anlegen
        
$projectpath PROJECT_PATH;
        
        
//-- existiert der Projekt Ordner noch nicht, wird dieser angelegt
        
if(!file_exists($projectpath)) 
        {
            
mkdir($projectpath,0777,TRUE);
            
chmod($projectpath,0777);
        }

        
        
$datenbankpath $projectpath."datenbank";
        
        
//-- existiert der Datenbank Ordner noch nicht, wird dieser angelegt
        
if(!file_exists($datenbankpath)) 
        {
            
mkdir($datenbankpath,0777,TRUE);
            
chmod($datenbankpath,0777);
        }

        
//-- alle Dateien aus dem Ordner löschen
        
$folder dir($datenbankpath."/");
        
               while(
$entry=$folder->read()) {
            
            if(
$entry=='.' || $entry=='..') {
                continue;
            }
            
                      
chmod($datenbankpath."/".$entry,0777);
                   
unlink($datenbankpath."/".$entry);
        }
        
$folder->close();
    

        
//-- auf doppelte Dateien pruefen
         
move_uploaded_file($file_temp,$datenbankpath."/".$file_name);
}
?>
nadenka ist offline   Mit Zitat antworten
Alt 13-08-2009, 10:13   #7 (permalink)
Neuer User
 
Registriert seit: Aug 2009
Beiträge: 5
PHP-Code:
/** searchProjectFile */
            
public function searchProjectFile():void 
            
{
                
projectUploadFile_ref = new FileReference();
                
projectUploadFile_ref.addEventListenerEvent.SELECTuploadProjectFileSelected );
                
projectUploadFile_ref.browsefilesToFilterProjectFile );
                
                
// Feld loeschen
                
tip_projectPath.text '';
                
// Button enable false setzen
                
btn_projectFileUpload.enabled false;
                
                
            
            }
            
            
/** uploadProjectFileSelected */
            
private function uploadProjectFileSelectedevent:Event ):void 
            
{
                
// 
                
var fileSizeLimit:uint 1024*1024*100;
                
                
//
                
if (projectUploadFile_ref.size fileSizeLimit
                {
                    
Alert.show('Die Datei ist leider zu gross, die darf höchstens ' fileSizeLimit 1024 /1024 'MB groß sein.''Fehler beim Hochladen');
                    return;
                }

                
tip_projectPath.text projectUploadFile_ref.name;
                
btn_projectFileUpload.enabled true;
            }
            
            
/** uploadProjectFile */
            
private function uploadProjectFile():void 
            
{
                
                
                var 
sendVars:URLVariables = new URLVariables();
                var 
request:URLRequest = new URLRequest();
                
                
sendVars.action     "uploadProject";
                
                
request.data     sendVars;
                
request.url     "http://xserve...de/test/upload.php";
                
request.method     URLRequestMethod.POST;
                
                
projectUploadFile_ref.uploadrequest,"file"false );
                
projectUploadFile_ref.addEventListenerProgressEvent.PROGRESSonProjectUploadProgress );
                
projectUploadFile_ref.addEventListenerEvent.COMPLETEonProjectUploadComplete );    
            }
                
            
/** onProjectUploadProgress */
            
private function onProjectUploadProgressevent:ProgressEvent ):void 
            
{
                
btn_projectFileCancel.enabled true;
            }
                        
            
/** onProjectUploadComplete */
            
private function onProjectUploadCompleteevent:Event ):void 
            
{
                
btn_projectFileCancel.enabled false;
                
btn_projectFileUpload.enabled false;
            }            
            
/** cancelProjectFile */
            
private function cancelProjectFile():void
            
{
                
projectUploadFile_ref.cancel();
            }
        ]]>
    </
mx:Script>

    <
mx:HBox width="539" height="129">
        <
mx:Label 
            width
="85"
            
text="Projektdatei:"
            
styleName="whiteLabelSmall"
            
/>
                            
            <
mx:TextInput 
                id
="tip_projectPath" 
                
width="300" 
                
editable="false" 
                
/>
            <
mx:VBox height="100%" width="121">
                <
mx:Button 
                    label
="durchsuchen" 
                    
width="100"
                    
click="{ searchProjectFile() }"
                    
/>
                <
mx:Button 
                    id
="btn_projectFileUpload" 
                    
label="hochladen" 
                    
width="100" 
                    
enabled="false" 
                    
click="{ uploadProjectFile() }"
                    
/>
                <
mx:Button 
                    id
="btn_projectFileCancel" 
                    
label="abbrechen" 
                    
width="100" 
                    
enabled="false" 
                    
click="{ cancelProjectFile() }"
                    
/>
                <
mx:Text id="statusTxt" text="Text" width="118"/>
            </
mx:VBox>
                    
    </
mx:HBox
nadenka ist offline   Mit Zitat antworten
Alt 13-08-2009, 10:19   #8 (permalink)
Neuer User
 
Registriert seit: Aug 2009
Beiträge: 5
ich hoffe dass es nun besser zu lesen ist, sorry, kenne mich hier mit nicht aus.
normalerweise finde ich immer eine Antwort auf meine Fragen im Netz, diesmal habe ich den weg über einen Forum nehmen müssen

also weiß jemand was genau los ist.

oder hat jemand eine Idee wie ich am besten in Air - Application Dateien hochladen kann. Download passiert ohne Probleme.

Ach ja Air mache ich mit Hilfe von Flexbuilder 3

Vielen Dank für jede Antwort
nadenka ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 16:51 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele