AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

socket sendbuffer Problem

Ein Thema von codenoob · begonnen am 7. Jan 2016 · letzter Beitrag vom 7. Jan 2016
Antwort Antwort
codenoob
(Gast)

n/a Beiträge
 
#1

socket sendbuffer Problem

  Alt 7. Jan 2016, 10: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
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: socket sendbuffer Problem

  Alt 7. Jan 2016, 10:48
Vielleicht solltest Du anstelle von Strings - AnsiStrings verwenden.

XE2 arbeitet mit Unicode Zeichen (2Byte pro Zeichen).

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
codenoob
(Gast)

n/a Beiträge
 
#3

AW: socket sendbuffer Problem

  Alt 7. Jan 2016, 10:53
Danke Klaus hab jetzt aus

Temp: string;

ein

Temp: Ansistring;

gemacht und es funktioniert wieder lol binn ich ein Depp

Grüsse Tom
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz