| Autor |
Beitrag |
andras
      
Beiträge: 460
Win XP, Win Vista Home Premium, Ubuntu Dapper Drake
Delphi 2005 Pers
|
Verfasst: Di 14.03.06 18:07
hallo!
ich hab mir mit den Socket-kompos einen server und einen clinet zusammengebastelt. wenn ich verbinde und versuche einen kurzen text zu senden kommt folgende fehlermedlung:
Quelltext 1:
| Windows-Socket-Fehler: Eine Anforderung zum Senden oder Empfangen von Daten wurde verhinder, da des Socket nicht verbunden ist und (beim Senden über einen Datagrammsocket mit einem sendto-Aufruf) keine Adresse eingegeben wurde (10057), auf API'getpeername' |
der host ist localhost.
die anmeldung des clients am server funktioniert.
kann mir wer helfen??
danke schon im voraus! Moderiert von raziel: Topic aus VCL (Visual Component Library) verschoben am Di 14.03.2006 um 19:39
|
|
Marco D.
      
Beiträge: 2750
Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
|
Verfasst: Di 14.03.06 18:25
Tritt das Client-Ereignis OnConnect ein?
Gib mal den Code zum Senden!
_________________ Pascal keeps your hand tied. C gives you enough rope to hang yourself. C++ gives you enough rope to shoot yourself in the foot
|
|
andras 
      
Beiträge: 460
Win XP, Win Vista Home Premium, Ubuntu Dapper Drake
Delphi 2005 Pers
|
Verfasst: Di 14.03.06 18:33
ja, da tritt ein.
hier der client code:
Delphi-Quelltext 1: 2: 3:
| ClientSocket1.Open; ClientSocket1.Socket.SendText('Hallo Server! Hallo Welt!'); ClientSocket1.Close; |
nichts aufregendes.
|
|
Born-to-Frag
      
Beiträge: 1094
Win XP SP2, Win 2000 SP4
Delphi 7, 2k5
|
Verfasst: Di 14.03.06 18:50
_________________ Theorie ist wenn man alles weiß, aber nichts funktioniert. Praxis ist wenn alles funktioniert, aber niemand weiß warum.
Microsoft vereint Theorie und Praxis: Nichts funktioniert und niemand weiß warum.
|
|
andras 
      
Beiträge: 460
Win XP, Win Vista Home Premium, Ubuntu Dapper Drake
Delphi 2005 Pers
|
Verfasst: Di 14.03.06 18:57
|
|
Fighter#1
      
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
|
Verfasst: Di 14.03.06 19:01
???
Gibst du bei beiden den/die selbe/n Port, IP an?
Steht nicht im Quelltext
_________________ Wer andere beherrscht ist stark,
wer sich selbst beherrscht ist mächtig. Lao Tse
|
|
andras 
      
Beiträge: 460
Win XP, Win Vista Home Premium, Ubuntu Dapper Drake
Delphi 2005 Pers
|
Verfasst: Di 14.03.06 19:06
port is der selbe.
host ist localhost.
ws muss ich leicht sonst noch angeben?
|
|
Fighter#1
      
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
|
Verfasst: Di 14.03.06 19:09
bei beiden halt .open; oder .active:=True;
sonst eig. nix
_________________ Wer andere beherrscht ist stark,
wer sich selbst beherrscht ist mächtig. Lao Tse
|
|
andras 
      
Beiträge: 460
Win XP, Win Vista Home Premium, Ubuntu Dapper Drake
Delphi 2005 Pers
|
Verfasst: Di 14.03.06 19:10
|
|
Fighter#1
      
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
|
Verfasst: Di 14.03.06 20:23
Dann lass irgendwas im Connect ereignis des clients und Server passieren.
Ich schau mal nachher was Fehlercode 10053 heißt
_________________ Wer andere beherrscht ist stark,
wer sich selbst beherrscht ist mächtig. Lao Tse
|
|
andras 
      
Beiträge: 460
Win XP, Win Vista Home Premium, Ubuntu Dapper Drake
Delphi 2005 Pers
|
Verfasst: Fr 17.03.06 23:35
so, hab jetzt was passieren lassen beim onconnect-ereignis und es tritt ein. hab alles mal mit dem debugger durchgetestet. der fehler tritt beim text auf nicht beim anmelden.
|
|
Fighter#1
      
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
|
Verfasst: Sa 18.03.06 11:16
Poste mal bitte den gesamten Code, dann kann ich schauen wo der Fehler liegt.
_________________ Wer andere beherrscht ist stark,
wer sich selbst beherrscht ist mächtig. Lao Tse
|
|
andras 
      
Beiträge: 460
Win XP, Win Vista Home Premium, Ubuntu Dapper Drake
Delphi 2005 Pers
|
Verfasst: Sa 18.03.06 13:55
hier der client:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ScktComp, StdCtrls;
type TForm1 = class(TForm) Button1: TButton; ClientSocket1: TClientSocket; Label1: TLabel; procedure ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket); procedure Button1Click(Sender: TObject); private public end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); begin ClientSocket1.Port:=123; ClientSocket1.Host:='localhost'; ClientSocket1.Open; end;
procedure TForm1.ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket); begin Label1.Caption:='Verbunden'; ClientSocket1.Socket.SendText('Hallo Server! Hallo Welt!'); ClientSocket1.Close; end;
end. |
und hier der server:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ScktComp;
type TForm1 = class(TForm) ServerSocket1: TServerSocket; Label1: TLabel; Label2: TLabel; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormCreate(Sender: TObject); procedure ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); procedure ServerSocket1ClientConnect(Sender: TObject; Socket: TCustomWinSocket); private public end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.ServerSocket1ClientConnect(Sender: TObject; Socket: TCustomWinSocket); begin
Label1.Caption:='Anmeldung erfolgreich' end;
procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); begin Label2.Caption:=ServerSocket1.Socket.ReceiveText; end;
procedure TForm1.FormCreate(Sender: TObject); begin ServerSocket1.Port:=123; ServerSocket1.Open; end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin ServerSocket1.Close; end;
end. |
|
|
Fighter#1
      
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
|
Verfasst: Sa 18.03.06 14:15
OK das problem liegt darin das du beim Server im OnClientRead ereignis eingibst :
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| ServerSocket1.Socket.ReceiveText...
Aber im OnClientRead Ereignis wird dir eine Socket (wies im Header steht Socket) gegeben. Nutze sie und die Probleme sind weg. dann sollte es da so aussehen:
procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); begin Label2.Caption:=Socket.ReceiveText; end; |
_________________ Wer andere beherrscht ist stark,
wer sich selbst beherrscht ist mächtig. Lao Tse
|
|
andras 
      
Beiträge: 460
Win XP, Win Vista Home Premium, Ubuntu Dapper Drake
Delphi 2005 Pers
|
Verfasst: Sa 18.03.06 14:38
juhuu!! es funktioniert!!!!
DANKE!!!
|
|
|