Mein Network Video exchange Tool

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Joel
Beiträge: 851
Registriert: 21.04.2006 19:22

Beitrag von Joel »

Und hat sich jemand das Programm schonmal angeguckt??? :mrgreen:

Habt ihr irgentwelche Tipps???

Wenn ihr in dem Programm nicht durchblickt, dann kann ich ja mal einen kurze Anleitung machen, in der steht wie das Programm funktioniert.
----------------------------------------------------------

PB 5.20 Beta 10 | Windows 7
Benutzeravatar
Joel
Beiträge: 851
Registriert: 21.04.2006 19:22

Beitrag von Joel »

Versteht ihr das Programm nicht oder habt ihr keine Lust auch das Angugucken oder bin ich hier im falschen Sub-Forum :mrgreen:

Wie findet ihr die Überschrift???
----------------------------------------------------------

PB 5.20 Beta 10 | Windows 7
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

exchange, nicht exchenge Bild
Windows 10 Pro, 64-Bit / Outtakes | Derek
Benutzeravatar
Joel
Beiträge: 851
Registriert: 21.04.2006 19:22

Beitrag von Joel »

Stimmt, Tippfehler
----------------------------------------------------------

PB 5.20 Beta 10 | Windows 7
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

Joel hat geschrieben:oder habt ihr keine Lust auch das Angugucken
sorry, nicht persönlich nehmen, aber wenn ich mir so Deinen Code anschaue:
den werde ich mit Sicherheit nicht auf meinen Rechner loslassen.

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
Joel
Beiträge: 851
Registriert: 21.04.2006 19:22

Beitrag von Joel »

Ok, ich habe das mal ein bisschen verbessert. Ich brauche nur jemanden, der den Client mal kompiliert und mir ne Datei schickt:-)
Ip und Port sind schon eingetragen

Server:

Code: Alles auswählen

Procedure Zusammen()
CreateFile(3,"C:\test.JPG")
Zahl= 0
For x = 1 To 999999
If ReadFile(1, "C:\1\"+Str(x)+".JPG") = 0
Goto Weiter_1:
EndIf 
Zahl+1
Next

Weiter_1:

For q = 1 To Zahl
OpenFile(2,"C:\1\"+Str(q)+".JPG")
Size=FileSize("C:\1\"+Str(q)+".JPG")
For a = 1 To Size
WriteByte(3,ReadByte(2)) 
Next 
 Next 
 
CloseFile(2)
CloseFile(3)

EndProcedure 





v = 0

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

CreateDirectory("C:\1\")

Port = 6832
*Buffer = AllocateMemory(1000)

If CreateNetworkServer(0, Port)

  ;MessageRequester("PureBasic - Server", "Server created (Port "+Str(Port)+").", 0)
  
  Repeat
      
     Delay(10)
      
    SEvent = NetworkServerEvent()
  
    If SEvent
    
      ClientID = EventClient()
  
      Select SEvent
      
        Case 1
          ;MessageRequester("PureBasic - Server", "A new client has connected !", 0)
  
        Case 2
        Datenpuffer.s = Space(4) 
  ReceiveNetworkData(ClientID, @Datenpuffer, 4) 
  
  ;Debug "zusammen"
  Zusammen()
  SendNetworkString(ClientID, "endu")
 
  
        Case 3
If ReadFile(7, "C:\test.JPG") <> 0
ReceiveNetworkFile(ClientID, "C:\Endungg.txt")
OpenFile(10, "C:\Endungg.txt")
EndungFile$ = ReadString(10, 0)
CopyFile("C:\test.JPG","C:\Datei."+EndungFile$)
CloseFile(10)
CloseFile(7)
DeleteFile("C:\test.JPG")
DeleteFile("C:\Endung.txt")
DeleteFile("C:\Endungg.txt")
DeleteDirectory("C:\1\", "*.*", 0)
DeleteDirectory("C:\Split\", "*.*", 0)
CloseNetworkServer(0)
End 
EndIf 
        v+1

       ReceiveNetworkFile(ClientID, "C:\1\"+Str(v)+".JPG")
       SendNetworkString(ClientID, "nach")
        SendNetworkString(ClientID, "weit")
     
        Case 4
          MessageRequester("PureBasic - Server", "Client "+Str(ClientID)+" has closed the connexion...", 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  

Client:

Code: Alles auswählen

;S = 
;Max.f = Wie viele Dateien
;Status = Balkenstatus
;Wert = So viel Balken werden pro Datei erhöht.
;Aktuell = Aktueller Dateiwert
;GG = Der Wert, der immer die nächste Datei Wiedergibt
;
;
;
;
Colori+1
Global S.s
Global Fertig
Global Rechnerin
Global Datei.f
Global Ente
Global ende
Global Raffi
Global Los
Global ServerID
Global ConnectionID
Global GG.f
Global S
Global S$
Global Max.f
Global Status.f
Global Wert.f 
Global Akt.f
Global Hoch.f
Akt.f = 0
Raffi = 0
Rechnerin = 0
Colori = 0
Datei.f = 0
ende = 0
GG.f = 0





Procedure Splitten()
P.s="C:\Split\" 
Size= FileSize(S$) 
Size1 = FileSize(S$)
Byt = 600000


CreateDirectory(P) 

If OpenFile(0,S$)


For x=1 To Size/Byt+1

  CreateFile(1,P+Str(x)+".JPG") 
  For i=1 To Byt
  
  Size1-1

    If Size1 = 0
    WriteByte(1,ReadByte(0)) 
 CloseFile(1)
 CloseFile(0)
 Goto Weiter_1:
  EndIf 
     WriteByte(1,ReadByte(0)) 
  Next 
  CloseFile(1) 
Next 
CloseFile(0) 
EndIf
Weiter_1:
Debug "splitt fertig"
EndProcedure 


Procedure Daten()
Delay(5000)
Max.f= 0
For x = 1 To 999999
If ReadFile(1, "C:\Split\"+Str(x)+".JPG") = 0
Goto Weiter_2:
EndIf 
Max.f+1
Next

Weiter_2:
Ente = 45
Debug "Daten Fertig"
EndProcedure 



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

Port = 6832

;-Schleife zur Verbindungs-Herstellung
  Repeat 
 
  ConnectionID = OpenNetworkConnection("joel2.dyndns.org", Port) 
If ConnectionID 
EndIf 
Delay(100) 
Until ConnectionID <> 0 
ende = 45


  Debug Splitten()
  Debug Daten() 
  Aktuell = 0
  m = 1
  Debug SendNetworkFile(ConnectionID,"C:\Split\1.JPG" )
  Datei.f = 1
  Repeat 
  If Raffi = 3

 ; Debug "Raffi"
  m+1
  SendNetworkFile(ConnectionID,"C:\Split\"+Str(m)+".JPG" )
  Datei.f+1
  Raffi = 0
   EndIf 
   If Max.f = Datei.f
Delay(1000)
   SendNetworkString(ConnectionID, "beid")
   Delay(500)
   jjj = 5
   EndIf 
   Until jjj = 5
  Delay(9999999)
 EndProcedure 
 
 
 
 Procedure warten()
 Repeat 

Delay(200)
    
    ServerID = NetworkClientEvent(ConnectionID) 
    Select ServerID
 
  Case 2 

  Datenpuffer.s = Space(4) 
  ReceiveNetworkData(ConnectionID, @Datenpuffer, 4) 
  
  
  
  If Datenpuffer = "endu"

    Endung$ = GetExtensionPart(S$)
    CreateFile(6, "C:\Endung.txt")
    WriteString(6, Endung$, 0)
    CloseFile(6)
SendNetworkFile(ConnectionID, "C:\Endung.txt")
Fertig = 45

    Delay(2000)
    CloseNetworkConnection(ConnectionID)
    DeleteDirectory("C:\Split", "*.*", 0)
    End 
    
  EndIf
  

  
  If Datenpuffer = "nach"

  Akt.f+1
  EndIf 
  
  If Datenpuffer = "weit"
  Raffi = 3
  EndIf 
  
  
  
  
  
  EndSelect 
  
 Until Quit = 1


EndProcedure 


Procedure Rechner()
 MainThread = CreateThread(@Main(), 400)
 Repeat
       Delay(100)
       Until ende = 45
       wartenThread = CreateThread(@warten(), 500)
       Repeat
       Delay(10)
       Until Ente = 45
       Wert.f=100/Max.f
       GG.f = 0
       Repeat 
       GG.f+1
       Repeat
       Delay(20)


       Until Akt.f = GG.f
       Rechnerin = 430
       Hoch.f = Akt.f*Wert.f   
       Delay(100)
       Until Hallo = 433
EndProcedure 





If OpenWindow(0, 216, 0, 399, 314, "Datei-Senden",  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_MinimizeGadget)
    If CreateGadgetList(WindowID(0))
      StringGadget(1, 10, 32, 250, 25, "")
      ButtonGadget(2, 270, 30, 110, 27, "Durchsuchen")
      TextGadget(3, 10, 5, 250, 15, "Bitte die Datei auswählen, die gesendet werden soll:")
      ButtonGadget(4, 130, 270, 140, 40, "Senden!!!", #PB_Button_Default | #PB_Button_Toggle)
      ProgressBarGadget(5, 10, 140, 370, 50, 0, 100)
      TextGadget(6, 110, 110, 160, 15, "Fortschritt des sendens der Datei:")
      EndIf
       Repeat
       
       
       
    EventID = WaitWindowEvent(100) 
    If Rechnerin = 430
   ; If Rechnerin = 430
       SetGadgetState(5, Hoch.f)
       Rechnerin = 10
       EndIf 
       
             
       
       
    If EventID = #PB_Event_Gadget

      Select EventGadget()
      
      
      Case 2

      S$ = OpenFileRequester("Datei auswählen die geschickt werden soll", "C:\Downloads\Software\","*.*", 0, 0)
      SetGadgetText(1, S$)

      
      
      
      
        Case 4
        DisableGadget(4, 1)
        RechnerThread = CreateThread(@Rechner(), 400)
        TextGadget(9, 0, 210, 400, 15, "Die Datei wird Verarbeitet, dannach kann man den Fortschritt des sendens verfolgen")
        SetGadgetColor(9,#PB_Gadget_FrontColor, $0000FF)

        
        
    
        
         EndSelect
  EndIf

Until EventID = #PB_Event_CloseWindow
End 
EndIf 
----------------------------------------------------------

PB 5.20 Beta 10 | Windows 7
Antworten