![]() |
probleme mit sendbuf und receivebuf
hallo...
beschäftige mich zum ersten mal mit sockets und bin mit textversenden auch gut klargekommen. Nun wollte ich ein kleines prog schrieben, welches dem prog (auf anderem rechner) seine formularkoordinaten zusendet (in form eines records). der server soll die daten dann enpfangen und sein formular an diese koordinaten verschieben. connection steht, doch sobald ich beim client auf den "senden"-button drücke, komm win socket error 10054 auf BEIDEN rechnern. also da funzt was, abenicht richtig ^^ hier mal ein bissel code...
Delphi-Quellcode:
//das macht er, wenn ich auf senden klicke
//package ist eine private-variable in der klasse tform1 vom typ des records mit den beiden integervariablen procedure TForm1.Button3Click(Sender: TObject); begin If client.Active then begin package.x := left; package.y := top; client.Socket.SendBuf(package,sizeof(package)); end; end; //wenn der server was empfängt, soll er folgendes machen procedure TForm1.ServerClientRead(Sender: TObject; Socket: TCustomWinSocket); begin server.Socket.ReceiveBuf(package,sizeof(package)); left := package.x; top := package.y; end; bitte um schnelle hilfe, habe heute frei ^^ [edit=sakura] [delphi]-tags Mfg, sakura[/edit] |
Re: probleme mit sendbuf und receivebuf
:hi: Erstmals, herzlich willkommen in der DP (cool, ich darfs auch mal sagen).
Für Delphi-code haben wir die [ delphi]-Tags (ohne Leerzeichen) Das Problem ist, dass package in Delphi ein reserviertes Wort ist. Das wird hiermit ersichtlich:
Delphi-Quellcode:
Ein fettgedruckter Bezeichner markiert ein reserviertes Wort. Gib der Variable eine andere Bezeichnung und es müsste funktionieren.
package Blabla;
|
Re: probleme mit sendbuf und receivebuf
daran lags leider nicht... habe die variable jetzt "paket" genannt. hatte mich aber auch mit der fehlermeldung vertan.
wenn ich vom client aus sende, bekomm ich auf diesem rechner die meldung "asynchronous socket error 10053" und auf dem server erhalte ich folgende meldung: "windows socket error: (10057), on API 'recv'" |
Re: probleme mit sendbuf und receivebuf
bitte helft mir ^^
|
Re: probleme mit sendbuf und receivebuf
Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
begin If client.Active then begin package.x := left; package.y := top; client.Socket.SendBuf(package,sizeof(package)); end; end; //wenn der server was empfängt, soll er folgendes machen procedure TForm1.ServerClientRead(Sender: TObject; Socket: TCustomWinSocket); begin Socket.ReceiveBuf(package,sizeof(package)); left := package.x; top := package.y; end; |
Re: probleme mit sendbuf und receivebuf
Zitat:
|
Re: probleme mit sendbuf und receivebuf
viellcith kann sich ja mal jemand den gesamten quelltext ansehen...
Delphi-Quellcode:
bin langsam am verzweifeln.... ;-(
type
koord = record x,y: integer; end; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Client: TClientSocket; Server: TServerSocket; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure ClientConnect(Sender: TObject; Socket: TCustomWinSocket); procedure Button3Click(Sender: TObject); procedure ServerClientRead(Sender: TObject; Socket: TCustomWinSocket); private paket: koord; public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin server.Open; end; procedure TForm1.Button2Click(Sender: TObject); begin client.open; end; procedure TForm1.ClientConnect(Sender: TObject; Socket: TCustomWinSocket); begin caption := 'connected to host'; end; procedure TForm1.Button3Click(Sender: TObject); begin If client.Active then begin paket.x := left; paket.y := top; client.Socket.SendBuf(paket,sizeof(paket)); end; end; procedure TForm1.ServerClientRead(Sender: TObject; Socket: TCustomWinSocket); begin Socket.ReceiveBuf(paket,sizeof(paket)); left := paket.x; top := paket.y; end; |
Re: probleme mit sendbuf und receivebuf
Ich nehme mal an dass du im Eigenschaftsinspektor die richtigen Werte für Host bzw. Port gesetzt hat, denn im Source kann ich die nicht entdecken. Ansonsten scheint an der soße nichts zu fehlen...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz