Einzelnen Beitrag anzeigen

codenoob
(Gast)

n/a Beiträge
 
#1

socket sendbuffer Problem

  Alt 7. Jan 2016, 09:45
Hi Comunity und Delphianer

Ich binn vor kurzem auf Delphi xe2 umgestiegen und habe in meiner Delphi Sammlung welche ich früher in Delphi 7 geschrieben habe Projekte die ich jetzt in der neueren Version von Delphi gerne weiter machen möchte.
Für mein Chat Projekt habe ich ne Server und ne Client Anwendung.
Mein Server konnte ich mit XE2 ausführen und der läuft auch wie gewohnt.
Allerdings macht mir der Client Kopfzerbrechen.

Mein Client wenn ich ihn mit Delphi 7 compiliere schikt er dem Server nach dem Connect Informationen die ungefähr so ausschauen.

34|OnConnect|Benutzername|Chatfarbe|

Wenn ich den Client im Delphi 7 Compiliere tut er dies ja auch, und der Server empfängt '34|OnConnect|Benutzername|Chatfarbe|' aber wenn ich ihn dann in XE2 Compiliere dann empfängt der Server nur ne '3' also nur das erste Zeichen.

Der Client schaut so aus.
Delphi-Quellcode:
procedure Send(Socket: TClientSocket; Data: string);
var
  Temp: string;

begin

  while (Length(Data) > 0) and (Socket.Connected) do begin
    Temp := Copy(Data,1,4096);

    Delete(Data,1,4096);
    repeat

    until Socket.SendBuffer(pointer(Temp)^,length(Temp)) <> -1;

    sleep(10);
  end;
end;


procedure SendData(Socket: TClientSocket; Data: string);

begin

  Data := inttostr(length(Data)) + '|' + Data;

  if Socket = nil then exit;
  if not Socket.Connected then Exit;

    Send(Socket,Data);

end;


procedure TForm1.ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket);

begin

 ConnectionString := '|OnConnect|Benutzername|Chatfarbe|'
 
 SendData(Socket,ConnectionString);

end;
Weiss wer an was das liegen kann?

Besste Grüsse Tom
  Mit Zitat antworten Zitat