Entwickler-Ecke
Internet / Netzwerk - Wie geht Sendbuf unter zwei Programmen?
Fighter#1 - Sa 04.02.06 08:50
Titel: Wie geht Sendbuf unter zwei Programmen?
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)
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)
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; |
Narses - 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 - So 05.02.06 12:12
Kannst du mir ein Beispiel geben wie das dann etwa aussehen sollte,
Bitte?
Narses - 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 [
http://www.delphi-library.de/topic_ProtokollChatTutorial+TServerClientSocket_54269.html] 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
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!