Einzelnen Beitrag anzeigen

Astat

Registriert seit: 2. Dez 2009
Ort: München
320 Beiträge
 
Lazarus
 
#10

Re: Netzwerkübertragung klappt nicht

  Alt 19. Dez 2009, 20:17
Hallo Socke_SG;

Zitat von Socke_SG:
Nachricht ist einfach ne Chat-Nachricht:Nachricht: TChatNachricht;
TChatNachricht ist ein Object, Array, Record ...?

Ich nehme mal an, wegen SizeOf ist es eine packed Record struct, mit ShortStrings??

Zitat von Socke_SG:
Die Empfangsroutine ist:
Delphi-Quellcode:
procedure TFrmClient.ClientSocketRead (Sender: TObject; Socket: TCustomWinSocket);
var Nachricht: TChatNachricht;
  strIn, strText: String;
  rand: integer;
begin
   Socket.ReceiveBuf (Nachricht, SizeOf(Nachricht));
   mess:=Nachricht.text;
   ...
end;
Du liest aus dem Socket einfach in eine Struktur die du auch beim Senden verwendest.
Dies funktioniert nur manchmal, wenn Du glück hast richtig.
Du brauchst einen Empfangsbuffer, aus dem du die gesendeten Fragmente, wenn eine RecordSize übertragen
wurde, dann in Nachricht kopierst, und dann erst diese weiterbearbeitest.

Zitat von Socke_SG:
Wie gesagt unter XP alles kein Problem.
Einfach Glück!

Wie dies korrekt implementiert werden kann, findest Du hier.
http://www.delphipraxis.net/internal...195&highlight=

lg. Astat
Lanthan Astat
06810110811210410503210511511603209711003210010110 9032084097103
03211611111604403209711003210010110903210010510103 2108101116122
11610103209010110510810103206711110010103210511003 2068101108112
10410503210310111509910411410510109810111003211910 5114100046
  Mit Zitat antworten Zitat