ich bin ein absoluter PB neuling, also bitte nicht über meine dummen fragen wundern.
Folgendes Problem:
Ich möchte einen TCP-Server programmieren, der auf einem gewissen port daten (plaintext) empfängt und diese nach beendigung der clientverbindung in eine textdatei schreibt.
Soweit hab ichs schon geschafft, jetzt ist nur das problem, dass er zwar die 1. zeiel normal liest, wenn ich jedoch im telnet <return> drücke und die 2. zeile eingeben, macht er mir nach jedem zeichen einen zeilenumbruch.
Telnet-Eingabe:
Code: Alles auswählen
daten 1
daten 2
Code: Alles auswählen
daten 1
d
a
t
e
n
2
Code: Alles auswählen
If CreateNetworkServer(0, Port)
line.s = ""
Repeat
SEvent = NetworkServerEvent()
If SEvent
ClientID = EventClient()
Select SEvent
Case 2
ReceiveNetworkData(ClientID, Buffer, 1000)
line = line+PeekS(Buffer)
Case 4
AppendFile(logfile,line) ;eingelesenen text an logdatei anhängen
line = ""
EndSelect
EndIf
Select WindowEvent() ;abfrage, ob irgendein fenster-ereignis aufgetreten ist
Case #PB_Event_CloseWindow ;fenster schließen wurde angeklickt
Break ;"endlos" schleife verlassen
Case #PB_Event_SysTray ;ein ereignis beim systray icon ist aufgetreten
If EventType()=#PB_EventType_LeftDoubleClick ;wenn es ein doppelklick war, dann
If minimized=1 ;fenster ist versteckt
HideWindow(0,0) ;also normalisieren
minimized=0 ;und wir merken uns, daß es NICHT mehr versteckt ist
Else ;fenster normal
HideWindow(0,1) ;also verstecken
minimized=1 ;und wir merken uns, daß es jetzt versteckt ist
EndIf
EndIf
Default ;wenn nix los ist
Delay(1) ;1 ms pause machen, damit das programm cpu schonend läuft :)
EndSelect
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
Warum diese Zeilenumbrüche und was kann ich dagegen tun?
Es eei zu erwähnen, dass zeilenumbrüche, welche vom Client "in auftrag gegeben" worden sind sehrwohl als solche in der textdatei landen sollten.
Gewünschtes Ergebnis:
Code: Alles auswählen
daten 1
daten 2