Autor |
Beitrag |
nicnac
Hält's aus hier
Beiträge: 11
WIN 2000
D7
|
Verfasst: 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:
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; 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:
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; end; |
Moderiert von Christian S.: Code- durch Delphi-Tags ersetzt.
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: 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:
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 public 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 = 0) then 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:
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 public 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 Motzi: Code- durch Delphi-Tags ersetzt.
|
|
nicnac 
Hält's aus hier
Beiträge: 11
WIN 2000
D7
|
Verfasst: 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
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: 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 
Hält's aus hier
Beiträge: 11
WIN 2000
D7
|
Verfasst: 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
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: 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...
cu
|
|
nicnac 
Hält's aus hier
Beiträge: 11
WIN 2000
D7
|
Verfasst: 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 
Hält's aus hier
Beiträge: 11
WIN 2000
D7
|
Verfasst: 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
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: 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.
cu
|
|
nicnac 
Hält's aus hier
Beiträge: 11
WIN 2000
D7
|
Verfasst: 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
      
Beiträge: 1349
Erhaltene Danke: 1
Win XP
D5 Pers (SSL), D2005 Pro, C, C#
|
Verfasst: 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
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: 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...
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 
Hält's aus hier
Beiträge: 11
WIN 2000
D7
|
Verfasst: 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 
Hält's aus hier
Beiträge: 11
WIN 2000
D7
|
Verfasst: Mo 08.11.04 21:30
es funzt!!!!!!!!!!!!
juhuuuuuuuuuuu!!!!!!!
danke an narses!!!!!!!
|
|
nicnac 
Hält's aus hier
Beiträge: 11
WIN 2000
D7
|
Verfasst: 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
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: 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.
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...
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 
Hält's aus hier
Beiträge: 11
WIN 2000
D7
|
Verfasst: 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
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: 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  ), 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...
cu
|
|
nicnac 
Hält's aus hier
Beiträge: 11
WIN 2000
D7
|
Verfasst: 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.
|
|
|