Ich würde gerne mit SendNetwerkData ne Datei von A nach B schicken
(Nein, nicht mit SendNetworkFile!

Aber irgendwie komm ich nicht so richtig dahinter!
Hat jemand sowas schonmal gemacht und nen Codetemplate da?
Mein Speicherbereich, den ich Verschicke sieht folgendermaßen aus:
Code: Alles auswählen
jfiStart0834403728@@@@@@@@@@@@@@@@@@@@jfiEndOfFile
| | | |
Start Größe der Datei Inhalt der End
Command als Quad Datei Command
Client:
Code: Alles auswählen
InitNetwork()
OpenConsole()
ConnectionID=OpenNetworkConnection("127.0.0.1", 999)
If ConnectionID
PrintN("Connected")
Else
PrintN("No Connection")
Input()
End
EndIf
Procedure sendfile(file.s, ConnectionID)
size.q=FileSize(file.s)
ReadFile(0, file.s)
length.q=Lof(0)
PrintN("Länge: "+Str(length))
*MemoryID = AllocateMemory(length+200)
PokeS(*MemoryID, "jfiStart")
PokeQ(*MemoryID+9, size)
bytes.q = ReadData(0, *MemoryID+17, length)
PokeS(*MemoryID+17+length, "jfiEndOfFile")
PrintN("Inhalt: "+PeekS(*MemoryID))
PrintN("Datei: "+PeekS(*memoryID+17))
If bytes.q<>length.q
PrintN("Checksum Error!!!")
End
EndIf
SendNetworkData(ConnectionID, *MemoryID, length+29)
CloseFile(0)
EndProcedure
file$=""
While file$<>"exit" Or file$<>"end"
PrintN("Welche Datei senden?")
file$=Input()
sendfile(file$, ConnectionID)
Wend
Server:
Code: Alles auswählen
InitNetwork()
OpenConsole()
If CreateNetworkServer(0, 999)
PrintN("Server open")
*Buffer = AllocateMemory(1000000)
size.q=0
count.q=0
Else
PrintN("Could not create server")
End
EndIf
Repeat
SEvent = NetworkServerEvent()
If SEvent
ClientID = EventClient()
Select SEvent
Case 1
PrintN("New Client has connected: "+Str(CliendID))
Case 2
PrintN("Client "+Str(ClientID)+" has send a packet !")
received=ReceiveNetworkData(ClientID, *Buffer, 1000000)
PrintN("Received: "+Str(received)+" Bytes")
If PeekS(*Buffer, 8)="jfiStart"
PrintN("Start of The File!!!")
len.q=PeekQ(*Buffer+8)
OpenFile(1, "C:\DATA.txt")
WriteData(1, *Buffer+17, received-17)
PrintN("Size: "+Str(len.q)+" Bytes")
PrintN("")
If PeekS(*Buffer+received-12)="jfiEndOfFile"
CloseFile(1)
PrintN("END OF DOKUMENT!")
EndIf
ElseIf PeekS(*Buffer+received-12)="jfiEndOfFile"
WriteData(1, *Buffer, received)
CloseFile(1)
PrintN("END OF DOKUMENT!")
Else
WriteData(1, *Buffer, received)
EndIf
PrintN(PeekS(*Buffer+received-12))
Case 3
PrintN("Client "+Str(ClientID)+" has send a file via the network !")
ReceiveNetworkFile(ClientID, "C:\TEST_Network.ftp3")
Case 4
PrintN( "Client "+Str(ClientID)+" has closed the connexion...")
EndSelect
EndIf
Until Quit=1
Input()
Wär cool, wenn jemand mir helfen könnte ^^