Autor Beitrag
Fighter#1
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 787

Win XP, Ubuntu 8.04
Turbo Delphi 2006, Delphi 2005 Pe, Delphi 5 Pe, Netbeans 6.1, Eclipse, Microsoft VisualC#, Dev C++, PHP, HTML, CSS
BeitragVerfasst: Sa 04.02.06 08:50 
Hallo Leute,

Ich wollt mir mal nen ganz einfachen MalChat basteln.
Da dacht ich mir SendBuf sieht ja ganz gut dafür aus!
Es funktioniert auch super soland Server und Klient in
einem Formular sind, doch wenn ich beide in seperate Programme ( Trotzdem selber Code )
stecke will der Server nicht das machen was er soll ( Das Bild anzeigen )

Hier mal ein bisschen Cöde

(Hier der Klient)
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
var 
size:Integer;
bild:TBitmap;
begin
bild:=Image1.Picture.Bitmap;
Size:=SIzeOf(Image1.Picture.Bitmap);
ClientSocket1.Socket.SendBuf(bild,size);


(Jetzt der Server)
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
var bild:TBitmap;
size:INteger;
  begin
size:=Socket.ReceiveLength;
Socket.ReceiveBuf(bild,size);
Image2.Picture.Bitmap:=bild;

_________________
Wer andere beherrscht ist stark,
wer sich selbst beherrscht ist mächtig. Lao Tse
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Sa 04.02.06 14:22 
Moin!

Was du da machst, kann aus mehreren Gründen schon nicht funktionieren:

(a) du wertest nicht aus, wieviele Bytes tatsächlich über die Verbindung gelesen/geschrieben wurden. Wer sagt denn, dass das immer alles auf einmal gesendet wird/werden kann? -> In die OH zu diesen Befehlen sehen!

(b) Du kannst an TBitmap nicht direkt ein Bild durch schreiben an die Adresse zuweisen. Du mußt erstmal die Bildattribute übertragen, dann ein passendes Bitmap anlegen und dann am besten in einer Schleife die Scanlines senden, dann ist der Transferblock auch nicht so groß.

cu
Narses
Fighter#1 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 787

Win XP, Ubuntu 8.04
Turbo Delphi 2006, Delphi 2005 Pe, Delphi 5 Pe, Netbeans 6.1, Eclipse, Microsoft VisualC#, Dev C++, PHP, HTML, CSS
BeitragVerfasst: So 05.02.06 12:12 
Kannst du mir ein Beispiel geben wie das dann etwa aussehen sollte,
Bitte?

_________________
Wer andere beherrscht ist stark,
wer sich selbst beherrscht ist mächtig. Lao Tse
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: So 05.02.06 12:43 
Moin!

Das kann man nicht in drei Sätzen und mit ein paar Zeilen Code erklären... :| Dafür brauchst du (wenn du es vernünftig machen willst!) ein Binärprotokoll. Wenn du damit Erfahrung hättest, sollte das aktuelle Problem für dich eigentlich keines mehr sein; also würde ich dir zunächst mal raten, dich überhaupt mit Protokollen auseinander zu setzen. Das kannst du z.B. hier tun.

Wenn du mit einem Protokoll klar kommst, dann denke ich, kommen wir auch mit dem binären Ansatz an dieser Stelle weiter. :wink:

cu
Narses