Seite 4 von 6

Verfasst: 08.07.2006 12:24
von Joel
Wie kann man den einen Video im Speicherbereich *Video mit SendNetworkFile() verschicken?

Verfasst: 08.07.2006 12:33
von #NULL
den video einen einen virdeo ver Schicken einen mit dem vidoeoe mit SendNetworkData() das man man macht.$%&§$/(()%§

Verfasst: 08.07.2006 12:35
von Laurin
#NULL hat geschrieben:den video einen einen virdeo ver Schicken einen mit dem vidoeoe mit SendNetworkData() das man man macht.$%&§$/(()%§
:shock:

Schon am Mittag besoffen?
:lol: :lol: :lol:

Verfasst: 08.07.2006 12:40
von Kiffi
Laurin hat geschrieben:Schon am Mittag besoffen?
:lol: :lol: :lol:
nein, #NULL bewegt sich nur auf der selben Kommunikationsebene wie Joel :-)

Grüße ... Kiffi

Verfasst: 08.07.2006 12:41
von #NULL
ich bin ganz klar. aber ich hing nur ne weile bei joel's "den einen Video" in einer semantischen entschlüsselungs-schleife fest.

Verfasst: 08.07.2006 15:48
von AndyX
Joel hat geschrieben:Wie kann man den einen Video im Speicherbereich *Video mit SendNetworkFile() verschicken?
Speicherbereiche kann man mit SendNetworkFile() nicht verschicken, dafür brauchst du SendNetworkData(). hab ich aber auch schon geschrieben, aber du liest anscheinend die Antworten hier nicht.

Verfasst: 08.07.2006 18:28
von Joel
@AndyX:

Meintest du so:?

Client:

Code: Alles auswählen

Datei.s = OpenFileRequester(Datei, "", "", 0) 
If OpenFile(0, Datei) = 0 
  Debug "Error: OpenFile!" 
  End 
EndIf 

lenFile = Lof(0) 
*buffer = AllocateMemory(lenFile) 
*pack = AllocateMemory(lenFile + 8) 
ReadData(0, *buffer, lenFile) 
lenPack = PackMemory(*buffer, *pack, lenFile, 7) 
If lenPack 
  MessageRequester("Info", "Ratio: " + StrF(lenPack/lenFile)) 
Else 
  MessageRequester("Info", "Weitere Komprimierung nicht möglich") 
EndIf 
; *pack -> Daten zu senden 
If InitNetwork() = 0
  MessageRequester("Error", "Can't initialize the network !", 0)
  End
EndIf

Port = 6832

ConnectionID = OpenNetworkConnection("joel2.dyndns.org", Port)
If ConnectionID = 1
MessageRequester("Error", "Can't load the movie...", 0)
End
EndIf 
;Name$ = OpenFileRequester("Senden", "C:\", "*.*", 0 , 0)
;If Name$
SendNetworkData(ConnectionID, *pack, 55555)

  
  
  
  
  CloseNetworkConnection(ConnectionID)
;Else
  ;MessageRequester("PureBasic - Client", "Can't find the server (Is it launched ?).", 0)
;EndIf

  
End   
 


Server:

Code: Alles auswählen

If InitNetwork() = 0
  MessageRequester("Error", "Can't initialize the network !", 0)
  End
EndIf

Port = 6832
Buffer = AllocateMemory(1000)

If CreateNetworkServer(0, Port)

  MessageRequester("PureBasic - Server", "Server created (Port "+Str(Port)+").", 0)
  
  Repeat
      
    SEvent = NetworkServerEvent()
  
    If SEvent
    
      ClientID = EventClient()
  
      Select SEvent
      
        Case 1
          MessageRequester("PureBasic - Server", "hat sich gemeldet ", 0)
  
        Case 2
          MessageRequester("PureBasic - Server", "Ein Client hat eine roh-datei gesendet ", 0)
          ;DateiName$ = SaveFileRequester("Bitte Datei zum Speichern auswählen", "C:\", "*.*", 0)

        ;DateiName$
       If *Video = AllocateMemory(3000000)
lenFile = Lof(0)
       ReceiveNetworkData(ClientID, *Video, lenFile)
CopyFile("*Video", "C:\testttttt1.avi")

            EndIf 
          ;MessageRequester("Info", "String: "+PeekS(Buffer), 0)
  End 
        Case 3
          MessageRequester("PureBasic - Server", "Ein Client hat eine Datei gesendet!", 0)
          SendNetworkString(ClientID, "Ja")

          DateiName$ = SaveFileRequester("Bitte Datei zum Speichern auswählen", "C:\", "*.*", 0)

       If DateiName$

       
       
       
       
       ReceiveNetworkFile(ClientID, DateiName$)
  EndIf 
        Case 4
          MessageRequester("PureBasic - Server", "Die verbindung wurde beendet!", 0)
          Quit = 1
    
      EndSelect
    EndIf
    
  Until Quit = 1 
  
  MessageRequester("PureBasic - Server", "Click to quit the server.", 0)
  
  CloseNetworkServer(0)
Else
  MessageRequester("Error", "Can't create the server (port in use ?).", 0)
EndIf

  
End   

Verfasst: 08.07.2006 18:34
von AndyX
hui, die Codes müssen aber dringendst mal aufgeräumt werden...

ich würde es so machen(Code ungetestet!):

Client

Code: Alles auswählen

Datei.s = OpenFileRequester(Datei,"","",0)
If ReadFile(0,Datei) = 0
  End
EndIf

lenFile = Lof(0)
*buffer = AllocateMemory(lenFile)
*pack = AllocateMemory(lenFile + 8)
ReadData(0,*buffer,lenFile)
lenPack = PackMemory(*buffer,*pack,lenFile,7)
If lenPack
  MessageRequester("Info","Ratio: "+StrF(lenPack/lenFile))
Else
  MessageRequester("Info","Weitere Komprimierung nicht möglich")
EndIf
; *pack -> Daten zu senden
If InitNetwork() = 0
  MessageRequester("Error","Can't initialize the network!",0)
  End
EndIf

Port = 6832
ConnectionID = OpenNetworkConnection("joel2.dyndns.org",Port)
If ConnectionID = 0
  MessageRequester("Error","Can't connect to server...",0)
  End
EndIf
SendNetworkString(ConnectionID,Str(lenFile + 8))
SendNetworkString(ConnectionID,GetFilePart(Datei))
SendNetworkData(ConnectionID,*pack,lenFile + 8)
CloseNetworkConnection(ConnectionID)
Server

Code: Alles auswählen

If InitNetwork() = 0
  MessageRequester("Error","Can't initialize the network!",0)
  End
EndIf

Port = 6832
Buffer = AllocateMemory(1000)
*Video = AllocateMemory(3000000)
If CreateNetworkServer(0,Port)
  MessageRequester("PureBasic - Server","Server created (Port "+Str(Port)+").",0)
  Repeat
    SEvent = NetworkServerEvent()
    If SEvent
      ClientID = EventClient()
      Select SEvent
        Case 1
          MessageRequester("PureBasic - Server","Ein Client hat sich gemeldet.",0) 
        Case 2
          MessageRequester("PureBasic - Server","Ein Client hat eine Roh-datei gesendet.",0)
          ReceiveNetworkData(ClientID,Buffer,1000)
          len = Val(PeekS(Buffer))
          Buffer = ReAllocateMemory(Buffer,1000)
          ReceiveNetworkData(ClientID,Buffer,1000)
          Datei.s = PeekS(Buffer)
          ReceiveNetworkData(ClientID, *Video, len)
          CreateFile(0,Datei)
          WriteData(0,*Video,3000000)
          CloseFile(0)
          EndIf
        Case 3
          MessageRequester("PureBasic - Server", "Ein Client hat eine Datei gesendet!",0)
          SendNetworkString(ClientID, "Ja")
          DateiName$ = SaveFileRequester("Bitte Datei zum Speichern auswählen", "C:\", "*.*", 0)
          If DateiName$
            ReceiveNetworkFile(ClientID, DateiName$)
          EndIf
        Case 4
          MessageRequester("PureBasic - Server", "Die verbindung wurde beendet!", 0)
          Quit = 1
      EndSelect
    EndIf 
  Until Quit = 1
  MessageRequester("PureBasic - Server", "Click to quit the server.", 0)
  CloseNetworkServer(0)
Else
  MessageRequester("Error", "Can't create the server (port in use ?).", 0)
EndIf
gleich auch mal die ganzen unpassenden Whitespace-Funktionen entfernt...

Verfasst: 08.07.2006 18:48
von Joel
Ja und irgentwie empfängt der das auch nicht richig. Also speichert das auch nicht ab, aber besser bemomm ichs nicht hin.

Verfasst: 08.07.2006 18:51
von AndyX
siehe oberes posting, hab was editiert...