Autor Beitrag
nicnac
Hält's aus hier
Beiträge: 11

WIN 2000
D7
BeitragVerfasst: So 07.11.04 21:09 
mein problem ist folgendes: für mein aktuelles projekt muss ich daten zwischen zwei pc's verschicken. Das will ich mit hilfe der komponenten clientsocket und serversocket tun und um mich mit diesen komponenten vertraut zu machen habe ich einen kleinen messenger geschrieben. ich denke das eigentlich alles richtig ist aber wenn der client connectet kommt immer: asynchroner socket fehler.
Ich weiß das dieser fehler unter anderem auch schon in diesem forum behandelt wurde und habe mir auch jeden artikel dazu angesehen, außerdem bei google gesucht aber das hat mir alles nicht weitergholfen. ich finde einfach keinen fehler.

der client pc hat die firewall aus, der port ist freigegeben, hängt an einem router und hat xp

der server(mein pc) hat ebenfalls die firewall aus und den port freigegeben, hängt auch an einem router.

ich wäre sehr dankbar wenn mir jemand helfen kann denn ich steh kurz vor der verzweiflung

nun zum code:

der client:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Clientsocket1.Host:=edit1.Text; {in edit1 gibt der client meine ip ein}
  clientsocket1.Open;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  if (clientsocket1.Active=true) and (Edit2.Text<>''then
  begin
    clientsocket1.Socket.SendText(Edit1.text);
    edit1.text:='';
  end;  
end;

procedure TForm1.ClientSocket1Read(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  Memo1.lines.Add(socket.ReceiveText);
end;




der server:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  memo1.Lines.Add(socket.ReceiveText);
end;

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
  for i:=0 to serversocket1.Socket.ActiveConnections-1 do
  begin
    with serversocket1.Socket.Connections[i] do
    if (connected) then Sendtext(edit1.Text);
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  serversocket1.Open; {ja, diesen button click ich vorher an}
end;


Moderiert von user profile iconChristian S.: Code- durch Delphi-Tags ersetzt.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: So 07.11.04 21:20 
Moin!

Ich hab da mal ein C/S-Experiment gemacht, stammt noch aus D6 und benutzt die - mittlerweile nicht mehr aktuelle ScktComp - funktioniert aber, soweit ich weiß. Vielleicht hilfts ja was.

Der Server:

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:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    ServerSocket1: TServerSocket;
    Timer1: TTimer;
    CheckBox1: TCheckBox;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure ServerSocket1ClientRead(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure Timer1Timer(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
    procedure ServerSocket1ClientError(Sender: TObject;
      Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
      var ErrorCode: Integer);
    procedure ServerSocket1ClientConnect(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure ServerSocket1ClientDisconnect(Sender: TObject;
      Socket: TCustomWinSocket);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  ServerSocket1.Active := TRUE;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  ServerSocket1.Active := FALSE;
end;

procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket);
begin
  Memo1.Lines.Add(Socket.RemoteAddress+': '+Socket.ReceiveText);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
  var
    i: Integer;
begin
  if (CheckBox1.Checked) then
    begin
      for i := 0 to ServerSocket1.Socket.ActiveConnections-1 do
        if (ServerSocket1.Socket.Connections[i].Connected) then
          ServerSocket1.Socket.Connections[i].SendText(TimeToStr(Time()));
      Timer1.Interval := 1000;
    end;
end;

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
  if (Timer1.Interval = 0then
    Timer1.Interval := 1000
  else
    Timer1.Interval := 0;
end;

procedure TForm1.ServerSocket1ClientError(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer);
  var
    etxt: ShortString;
    i: Integer;
begin
  etxt := '???';
  if (ErrorEvent = eeGeneral) then
    etxt := 'eeGeneral'
  else if (ErrorEvent = eeSend) then
    etxt := 'eeSend'
  else if (ErrorEvent = eeReceive) then
    etxt := 'eeReceive'
  else if (ErrorEvent = eeConnect) then
    etxt := 'eeConnect'
  else if (ErrorEvent = eeDisconnect) then
    etxt := 'eeDisconnect'
  else if (ErrorEvent = eeAccept) then
    etxt := 'eeAccept';
  if (Socket.Connected) then
    for i := 0 to ServerSocket1.Socket.ActiveConnections-1 do
      if (Socket = ServerSocket1.Socket.Connections[i]) then
        ServerSocket1.Socket.Connections[i].Close;
  if (CheckBox1.Checked) then
    Timer1.Interval := 1000;
  ShowMessage('ErrorCode: '+IntToStr(ErrorCode)+#13+
              'ErrorEvent: '+etxt);
  ErrorCode := 0;
end;

procedure TForm1.ServerSocket1ClientConnect(Sender: TObject; Socket: TCustomWinSocket);
begin
  Memo1.Lines.Add('Client connected: '+Socket.RemoteAddress);
end;

procedure TForm1.ServerSocket1ClientDisconnect(Sender: TObject; Socket: TCustomWinSocket);
begin
  Memo1.Lines.Add('Client disconnected: '+Socket.RemoteAddress);
end;

end.


Der Client:

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:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    ClientSocket1: TClientSocket;
    Edit2: TEdit;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Button1Click(Sender: TObject);
    procedure ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket;
      ErrorEvent: TErrorEvent; var ErrorCode: Integer);
    procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
    procedure ClientSocket1Disconnect(Sender: TObject;
      Socket: TCustomWinSocket);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  is_running: Boolean;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  ClientSocket1.Host := '192.168.0.3';
  ClientSocket1.Active := TRUE;
  is_running := TRUE;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  is_running := FALSE;
  ClientSocket1.Active := FALSE;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if (ClientSocket1.Active) then
    ClientSocket1.Socket.SendText(Edit1.Text);
end;

procedure TForm1.ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer);
  var
    etxt: ShortString;
begin
  etxt := '???';
  if (ErrorEvent = eeGeneral) then
    etxt := 'eeGeneral'
  else if (ErrorEvent = eeSend) then
    etxt := 'eeSend'
  else if (ErrorEvent = eeReceive) then
    etxt := 'eeReceive'
  else if (ErrorEvent = eeConnect) then
    etxt := 'eeConnect'
  else if (ErrorEvent = eeDisconnect) then
    etxt := 'eeDisconnect'
  else if (ErrorEvent = eeAccept) then
    etxt := 'eeAccept';
  if ((ErrorEvent = eeConnect) or (ErrorEvent = eeDisconnect)) then
    begin
      ShowMessage('Server antwortet nicht!?');
      Application.Terminate;
    end
  else
    ShowMessage('ErrorCode: '+IntToStr(ErrorCode)+#13+
                'ErrorEvent: '+etxt);
  ErrorCode := 0;
end;

procedure TForm1.ClientSocket1Read(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  Edit2.Text := Socket.ReceiveText;
end;

procedure TForm1.ClientSocket1Disconnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  if (is_running) then
   begin
     ShowMessage('Server hat aufgelegt!');
     Application.Terminate;
   end;
end;

end.


cu

Moderiert von user profile iconMotzi: Code- durch Delphi-Tags ersetzt.
nicnac Threadstarter
Hält's aus hier
Beiträge: 11

WIN 2000
D7
BeitragVerfasst: So 07.11.04 21:48 
danke für die schnelle hilfe aber das hilft mir auch nicht viel weiter. unsere codes sind quasi identisch bisauf deine on error ereignisse. ich denke das mein fehler an der eigenschaft server/clientsocket.active und server/clientsocket.open liegt. Ich habe active zum programmstart auf false (client und server) undbenutze dann server/clientsocket.open zum aktivieren. Ist das falsch???
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: So 07.11.04 22:56 
Hi!

Zitat:
unsere codes sind quasi identisch bisauf deine on error ereignisse


Ja, fast. Sieht man davon ab, dass du in der Client-Sendeprozedur Edit2 statt Edit1 senden willst, oder? ;-)

Ich habe deinen Code mal in zwei Projekte umgesetzt und laufen gelassen. Funktioniert.

Zitat:
ich denke das mein fehler an der eigenschaft server/clientsocket.active und server/clientsocket.open liegt. Ich habe active zum programmstart auf false (client und server) undbenutze dann server/clientsocket.open zum aktivieren. Ist das falsch???


Nein, ich denke nicht, denn sonst würde es bei mir ja nicht funktionieren.

Zitat:
der client pc hat die firewall aus, der port ist freigegeben, hängt an einem router und hat xp
der server(mein pc) hat ebenfalls die firewall aus und den port freigegeben, hängt auch an einem router.


Da ich die beiden Programme in meinem lokalen Netz getestet habe, denke ich eher, es liegt an der Netzwerkkonfiguration bzw. der Routerconfig.

Die Fehlermeldung "asynchronous socket..." weist ja auch darauf hin, dass die WSA nicht in der Lage war, eine korrekte Socketverbindung zu etablieren.

Mein Tip wäre daher: Routerconfig checken! :)

cu
nicnac Threadstarter
Hält's aus hier
Beiträge: 11

WIN 2000
D7
BeitragVerfasst: Mo 08.11.04 00:09 
ok, das hilft mir weiter. das mit den edits ist mir auch vorhin aufgefallen, war ja nur leider nicht auschlaggebend.
wegen der routerconfig würde ich gerne noch wissen: müssen sowohl client als auch server die firewall aushaben?
und: müssen sowohl client als auch server die ports freigeben?
können router sonst noch auswirkungen auf mein prog haben?
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mo 08.11.04 00:42 
Moin!

Zitat:
müssen sowohl client als auch server die firewall aushaben?


Niemand muss seine Firewall ausmachen; würde ich nicht mal ansatzweise in betracht ziehen, solange mein Router ein Kabel in seinem DSL-Port stecken hat... ;-)

Es ist lediglich nötig, diesen einen speziellen Port für alle - oder wenn bekannt ist, welche - Adressen freizugeben. Mache ich hier z.B. so für ATnotes, D2, FTP, etc. (-> Filterregeln der Firewall)

Zitat:
müssen sowohl client als auch server die ports freigeben?


Ich schätze mal, du meinst die Weiterleitung von Ports am Router (der mit einer öffentlichen IP arbeitet) an Rechner im LAN (die mit einer privaten IP arbeiten), auch "inverses Maskieren" oder "service forwarding" genannt.

Das ist nur an dem Rechner nötig, der als Server fungiert. Weil: der Client kennt die Serveradresse (-> öffentliche IP des Server-Routers), kann also eine Verbindung aufbauen. Der Server-Router bekommt nun die Pakete mit der speziellen Portadresse, kann damit aber nichts anfangen, da dort kein Programm läuft, was damit was anfangen kann ("Dienst"). Deshalb muss in der Server-Router-Konfig eine Weiterleitung definiert werden, die solche Pakete an einen Rechner im LAN weiterleitet, der damit was anfangen kann. Soviel zur Verbindung Client->Server.

In der anderen Richtung hilft der Client-Router aus, da dieser ja eine Verbindung aufbauen sollte und deshalb die LAN-Adresse des Rechners kennt, an die Pakete vom Server wieder zugestellt werden müssen. Deshalb ist hier keine Weiterleitung notwendig.

Wenn längere "Totzeiten" in der Socket-Verbindung auftreten können (bzw. müssen), dann kommt es darauf an, wie der Router mit offenen Ports umgeht, die keinen Traffic haben: das ist von der Firmware abhängig. Um hier keinen Abbruch der Verbindung zu riskieren, sollte man sowas wie einen keep-alive-Mechanismus implementieren, der in bestimmten Zeitabständen Dummy-Pakete sendet, wenn sonst nichts "zu sagen" ist... ;-)

Kann mich nur sehr rudimentär an TCP-Connections erinnern, kann sein, dass die sowas sogar defaultmäßig haben, weiß ich einfach nicht mehr. Ich würde jedenfalls auf Nummer sicher gehen und einen keep-alive-cycle machen.

Zitat:
können router sonst noch auswirkungen auf mein prog haben?


Sofern es sich um "kurzlebige" Verbindungen (s.o. keep-alive-Problem) handelt, sollte es mit freigegebenem Port in der Firewall (Server und Client), sowie Weiterleitung im Server-Router laufen.

Würde mich interessieren, ob du´s an´s Laufen kriegst und woran es lag. Kannste ja hier "zum besten" geben... :D

cu
nicnac Threadstarter
Hält's aus hier
Beiträge: 11

WIN 2000
D7
BeitragVerfasst: Mo 08.11.04 00:50 
Titel: danke ersma
ok, dann liegt es wohl am "service forwarding". da hab ich zwar noch keine ahnung von aber wofür gibts routerhandbücher und google. wenn's neues gibt dann schreib ich, vielleicht noch heute.
nicnac Threadstarter
Hält's aus hier
Beiträge: 11

WIN 2000
D7
BeitragVerfasst: Mo 08.11.04 01:29 
ok, in meinem routerhandbuch steht darüber nichts und bei google findet man dazu auch herzlich wenig. wenn du noch irgendwas über diese inverse maskieren weißt dann wäre das sehr hilfreich! interessant wäre:
1. kann das jeder router?
2. unter welchen begriffen oder abkürzungen findet man das im routersetup
3. nach meinem router kommt erstmal ein switch, wo dann die pc's dranhängen(wovon einer meiner, also der spätere server ist). bedeutet das weitere probleme oder ist das egal?
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mo 08.11.04 01:50 
Moin!

Zitat:
in meinem routerhandbuch steht darüber nichts

Na prima, das ist ja auch die beste und zuverlässigste Quelle :( Was ist denn das für ein Router?

Zitat:
1. kann das jeder router?

Hängt von der Firmware ab; theoretisch: ja

Zitat:
2. unter welchen begriffen oder abkürzungen findet man das im routersetup

Servicetabelle, Weiterleitung, Port-forwarding, inverse Maskierung, inverse masquerading,... ?!? Such dir was aus...

Zitat:
3. nach meinem router kommt erstmal ein switch

Schön, aber egal. (normale) Switche sind entweder transparent oder kaputt. :D

cu
nicnac Threadstarter
Hält's aus hier
Beiträge: 11

WIN 2000
D7
BeitragVerfasst: Mo 08.11.04 02:27 
der router ist von level1 und heißt FBR-1405TX.
von den menüpunkten die du genannt hast war nichts bei!
bis morgen, bin im bett und danke das du dir mein problem so "zu herzen" nimmst. ich hätte mir bloß alles nen bissl leichter vorgestellt.
wulfskin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1349
Erhaltene Danke: 1

Win XP
D5 Pers (SSL), D2005 Pro, C, C#
BeitragVerfasst: Mo 08.11.04 09:08 
Hallo nicnac,

mir sind Verbindungsprobleme der Sockets nur bezüglich des Betriebssystems bekannt. Also, wenn entweder Server oder Client auf Win95 liegen (für Win98 hab ich es noch nicht getestet), dann brauchst du auf jedenfall das Windows-Update für die Sockets (findest du bei Microsoft.de). Wobei ich es bei mir trotzdem nicht zum laufen bekommen habe.

Ansonsten liegt es wohl wirklich an dem Router, bzw. der Firewall.

Gruß Hape!

_________________
Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mo 08.11.04 13:38 
Hi!

Zitat:
der router ist von level1 und heißt FBR-1405TX.
von den menüpunkten die du genannt hast war nichts bei!

Hm, hab mal eben von www.level-one.de die Anleitung gezogen. S.47, Virtual Server. Zugegeben, wörtlich steht das da nicht so drin, aber ein wenig rudimentäres angelsächsisch mit dem "Vorwissen" gepaart, hätte es eigentlich offenbaren sollen... ;-) Vorsicht! Das mit der festen, privaten IP ist ernst zu nehmen! Sonst wird das wieder nix.

Zitat:
danke das du dir mein problem so "zu herzen" nimmst

Danke für die Blumen. Aber so ein Forum lebt von mitmachen, sonst kannste auch Zettel ans Schwarze Brett kleben oder so... :wink:

Wenn du hier also irgendwo einen sinnvollen Beitrag leisten kannst, kannste dich damit revangieren.

Zum Beispiel auf meine Frage in VCL bzgl. der TTreeNodes... ;-)

cu
nicnac Threadstarter
Hält's aus hier
Beiträge: 11

WIN 2000
D7
BeitragVerfasst: Mo 08.11.04 21:01 
ok, die seite im handbuch erklärt es ja tatsächlich aber wenn ich mir eine feste ip zuweise, dann funzt doch mein dsl nicht mehr, oder(Telekom)?
nicnac Threadstarter
Hält's aus hier
Beiträge: 11

WIN 2000
D7
BeitragVerfasst: Mo 08.11.04 21:30 
es funzt!!!!!!!!!!!!
juhuuuuuuuuuuu!!!!!!!
danke an narses!!!!!!!
nicnac Threadstarter
Hält's aus hier
Beiträge: 11

WIN 2000
D7
BeitragVerfasst: Mo 08.11.04 22:12 
allerdings habe ich jetzt noch eine weitere frage.
das chatprogramm war ja nur ein kleines training für mein eigentliches project und in diesem projekt soll der user nicht meine ip eingeben müssen. da ich telekom dsl habe ist meine ip jedoch dynamisch. zur lösung dieses problems wollte ich eine dynDNS verwenden.
kann man diese DNS einfachim client bei ip eingeben oder muss ich eine funktion zum aufschlüsseln schreiben?
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mo 08.11.04 23:51 
Moin!

Zitat:
wenn ich mir eine feste ip zuweise, dann funzt doch mein dsl nicht mehr, oder(Telekom)?

Wie du vielleicht schon festgestellt hast, hat das mit DSL (egal von welchem Provider) nix zu tun.

Ich will weder unhöflich noch neugierig erscheinen, aber was machst du so und wie alt bis du denn? Nur zur Orientierung...

Zitat:
es funzt!!!!!!!!!!!!

Na fein, kaum macht man´s richtig, geht´s auch schon. :D

Zitat:
danke an narses!!!!!!!

Denk an die TTreeNodes... ;-)

Zitat:
in diesem projekt soll der user nicht meine ip eingeben müssen.

Naja, genau genommen muss er das natürlich schon, nur vielleicht nicht als Zahlenfolge... ;-)

Zitat:
da ich telekom dsl habe ist meine ip jedoch dynamisch. zur lösung dieses problems wollte ich eine dynDNS verwenden.

Das kannste tun, bei www.dyndns.org gibt´s sowas auch kostenlos (zumindest für max. 5 Hosts). Hab´ ich, nebenbei, auch getan.

Zitat:
kann man diese DNS einfachim client bei ip eingeben oder muss ich eine funktion zum aufschlüsseln schreiben?

Selbstverständlich kann man das einfach an Stelle der Form "x.x.x.x" tun, also z.B. "myhost.dyndns.org", sonst bräuchte man den DNS-Dienst ja nicht... :wink:

Nun, ich muß ja nun schon zugeben, dass es mich interessiert, was du da mit so großem Eifer "verfolgst", sprich, was der Zweck dieses Projektes ist... ?! Magste das mal "verraten"?

cu
nicnac Threadstarter
Hält's aus hier
Beiträge: 11

WIN 2000
D7
BeitragVerfasst: Di 09.11.04 00:12 
ich bin quasi direkter nachbar von dir falls du wirklich aus gelsenkirchen kommst, bin aus essen und 17 jahre alt. mein projekt ist eine kleine online-sportwette. ergebnisse, quoten und neue partien kommen über die sockets an die clients. soll mal so ähnlich wie oddset sein, nur halt online.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Di 09.11.04 00:33 
Hi!

Zitat:
ich bin quasi direkter nachbar von dir falls du wirklich aus gelsenkirchen kommst

Warum sollte ich GE schreiben und dann aus Ulm kommen (kleiner Scherz :wink: ), wohne in der Nähe der A40-Auffahrt GE; also "Nachbar". :)

Zitat:
mein projekt ist eine kleine online-sportwette. ergebnisse, quoten und neue partien kommen über die sockets an die clients. soll mal so ähnlich wie oddset sein, nur halt online.

Spannend. Hört sich nach viel Arbeit an. An verschiedene Versionsstände bei den Clients und an das Serverprotokoll wage ich erst gar nicht zu denken...

Hmmm, wäre nicht HTML/PHP/mySQL und entsprechender Webspace nicht irgendwie einfacher handzuhaben? Nur so´ne Idee... (Machen wir auf´m Job auch so, klar, nicht mit Sportwetten). Konkreter: Apache, mySQL-Server und myPHP auf deine Kiste ziehen und diese als Webserver betreiben? Dann reduziert sich der Aufwand mit den Versionsständern und dem Serverprotokoll praktisch auf 0. OK, dafür hat man dann ein paar andere Probleme. Ich will damit eigentlich sagen, dass ich ein Delphi-Projekt für sowas als zu unflexiebel halte.

Nochwas, ich will´s auch nur der Vollständigkeit halber ansprechen: Dir ist schon klar, dass bei deinem Projekt "Geld" auf keinen Fall eine Rolle spielen sollte, damit könntest du dir dermaßen viel Ärger (Gesetze!) einhandeln, dass es einem graust (von wegen "online" und "öffentlich" und sowas).

Und als Schlusswort: ähm, ich wollte dich eigentlich auch nicht demotivieren... :wink:

cu
nicnac Threadstarter
Hält's aus hier
Beiträge: 11

WIN 2000
D7
BeitragVerfasst: Di 09.11.04 00:39 
mir ist klar das es elegantere lösungen für eine sportwette gibt aber wenn alles nur halbsogut klappt wie bisher wirds schon klappen.
nein, es geht natürlich nur um virtuelles geld, und in einer highscore liste sieht man halt immer wer wieviel "erwirtschaftet" hätte.