Autor Beitrag
Chippie82
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Do 11.05.06 21:47 
Hallo Leute, ich habe folgendes Problem ich habe einen Server und einen Clienten erstellt vom Clienten zum Server kann ich einen Text verschicken, wenn ich dies umgekehrt machen möchte, bekomme ich eine Fehlermeldung. Woran liegt das?

Hier der Quelltext:


ausblenden volle Höhe Delphi-Quelltext
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:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
unit Unit1; 

interface 

uses 
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, 
  ExtCtrls, ScktComp, StdCtrls, ComCtrls; 

type 
  TIP = class(TForm) 
    Label1: TLabel; 
    Label2: TLabel; 
    ClientVerbinden: TButton; 
    ClientTrennen: TButton; 
    ServerVerbinden: TButton; 
    ServerTrennen: TButton; 
    ClientSocket1: TClientSocket; 
    ServerSocket1: TServerSocket; 
    Beenden: TButton; 
    StatusBar1: TStatusBar; 
    ClientSenden: TButton; 
    ServerSenden: TButton; 
    Edit1: TEdit; 
    Edit2: TEdit; 
    Memo1: TMemo; 
    Memo2: TMemo; 
    procedure ClientVerbindenClick(Sender: TObject); 
    procedure ServerVerbindenClick(Sender: TObject); 
    procedure BeendenClick(Sender: TObject); 
    procedure ClientTrennenClick(Sender: TObject); 
    procedure ServerTrennenClick(Sender: TObject); 
    procedure ClientSocket1Disconnect(Sender: TObject; 
      Socket: TCustomWinSocket); 
    procedure ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket; 
      ErrorEvent: TErrorEvent; var ErrorCode: Integer); 
    procedure ClientSocket1Connect(Sender: TObject; 
      Socket: TCustomWinSocket); 
    procedure ClientSendenClick(Sender: TObject); 
    procedure ServerSocket1ClientRead(Sender: TObject; 
      Socket: TCustomWinSocket); 
    procedure ServerSendenClick(Sender: TObject); 
    procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket); 

  private 
    { Private-Deklarationen } 
  public 
    { Public-Deklarationen } 
  end

var 
IP:TIP; 

implementation 

{$R *.DFM} 

procedure TIP.ClientVerbindenClick(Sender: TObject); //Verbindung des Clienten 
begin 
  clientsocket1.active:=true; //Verbindung wird aktiviert 
end

procedure TIP.ServerVerbindenClick(Sender: TObject); //Verbindung des Servers 
begin 
 serversocket1.active:=true; //Verbindung wird aktiviert 
end

procedure TIP.BeendenClick(Sender: TObject); 
begin 
  close; //Programm wird beendet 
end

procedure TIP.ClientTrennenClick(Sender: TObject); 
begin 
  clientsocket1.active:=false; //Client wird getrennt 
end

procedure TIP.ServerTrennenClick(Sender: TObject); 
begin 
  serversocket1.active:=false; //Server wird getrennt 
end

procedure TIP.ClientSocket1Disconnect(Sender: TObject; 
  Socket: TCustomWinSocket); 
begin 
  statusbar1.simpletext:='Verbindung wurde getrennt'//Statusanzeige 
end

procedure TIP.ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket; 
  ErrorEvent: TErrorEvent; 
  var ErrorCode: Integer); 
   begin 
    statusbar1.simpletext:='Error. Verbindung wird getrennt!'//Statusanzeige 
    clientsocket1.Active:=false; //Bei Fehler wird Verbindung getrennt 
  end

procedure TIP.ClientSocket1Connect(Sender: TObject; 
  Socket: TCustomWinSocket); 
begin 
  statusbar1.simpletext:='Verbunden'//Statusanzeige 
end


procedure TIP.ClientSendenClick(Sender: TObject); 
begin 
  clientsocket1.socket.sendtext(edit1.text); 
end

procedure TIP.ServerSocket1ClientRead(Sender: TObject; 
  Socket: TCustomWinSocket); 
  var 
  empfang:string
   begin 
    empfang:=socket.receivetext; 
    memo2.lines.add(empfang); 
end

procedure TIP.ServerSendenClick(Sender: TObject); 
begin 
 serversocket1.socket.sendtext(Edit2.text); 
end

procedure TIP.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket); 
var 
empfang2:string
  begin 
   empfang2:=socket.receivetext; 
   memo1.lines.add(empfang2); 
end

end.


Ich hoffe ihr könnt mir einen Tip geben oder mir weiterhelfen?


Hier ist noch die Fehlermeldung:

Zitat:

Im Projekt Project1.exe ist eine Exception der Klasse ESocketError aufgetreten. Meldung:
'Windows-Socket-Fehler: Eine Anforderung zum Senden oder Empfangen von Daten wurde verhindert, da der Socket nicht verbunden ist und (beim Senden über einen Datagrammsocket mit einem sendto-Aufruf) keine Adresse angegeben wurde (10057), auf API'send". Prozeß wurde angehalten. Mit einzelne Anweisung oder Start fortsetzen.




Gruß


Chippie


Moderiert von user profile iconChristian S.: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Fr 12.05.2006 um 00:01
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: Do 11.05.06 21:56 
Wann kommt die Meldung?
Es heißt nicht
ausblenden Delphi-Quelltext
1:
2:
3:
4:
serversocket1.socket.sendtext(Edit2.text); 
//sondern
ServerSocket1.Socket.Connections[0].SendText(Edit2.Text);
//0 ist der erste Client 1 der zweite, ...

_________________
Wer andere beherrscht ist stark,
wer sich selbst beherrscht ist mächtig. Lao Tse
Chippie82 Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Do 11.05.06 22:02 
Danke, dann klappt es. Also darf ich bei dem Server das Connection[x] nicht vergessen.


Vielen Dank.




Gruß

Chippie
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 11.05.06 23:42 
Moin!

Wenn ich mir deinen Code so anschaue, dann sieht mir das doch sehr nach einem Chat aus... ;) Allerdings erscheint mir manches recht merkwürdig. :?

Vielleicht hilft dir das hier weiter, wenn du später mal auf Probleme treffen solltest. :D

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.