ich hab ein kleines Problem, was das senden von größeren Daten über Netzwerk angeht.
Ich habe ein String, das z.B. eine länge von 100.000 Zeichen hat. Schicke ich diesen mit dem sendNetworkString-Befehl, kommt nicht alles in einem stück an, obwohl auf der gegenseite der Buffer groß genug gewählt wurde ( 10.000.000 ).
Wenn ich WLan nutze, ist das noch extremer als mit Lan (Laufen client und server auf dem selben Rechner, funktioniert es erwartungsgemäß einwandfrei).
Woran kann sowas liegen?
Hier mal ein kleines beispiel, wie ich das meine
Code: Alles auswählen
;Server
If InitNetwork() = 0
MessageRequester("Error", "Can't initialize the network !", 0)
End
EndIf
Port = 6832
*Buffer = AllocateMemory(10000000)
If CreateNetworkServer(0, Port)
Repeat
SEvent = NetworkServerEvent()
Delay(1)
If SEvent
ClientID = EventClient()
Select SEvent
Case 2
ReceiveNetworkData(ClientID, *Buffer, 1000000)
MessageRequester("Info", "Empfangene Zeichen: "+Str(Len(PeekS(*Buffer))))
Case 4
quit = 1
EndSelect
EndIf
Until Quit = 1
CloseNetworkServer(0)
Else
MessageRequester("Error", "Can't create the server (port in use ?).", 0)
EndIf
End
Code: Alles auswählen
;Client
If InitNetwork() = 0
MessageRequester("Error", "Can't initialize the network !", 0)
End
EndIf
Port = 6832
str.s = ""
For i.l = 0 To 999
str = str + "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
Next
ConnectionID = OpenNetworkConnection("192.168.0.1", Port)
If ConnectionID
SendNetworkString(ConnectionID, str)
CloseNetworkConnection(ConnectionID)
Else
MessageRequester("PureBasic - Client", "Can't find the server (Is it launched ?).", 0)
EndIf
End