Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Server gesucht
Gehe zu Seite Zurück  1, 2, 3, 4, 5  Weiter
 
Neues Thema eröffnen   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Off-Topic-Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
stevie1401



Anmeldungsdatum: 04.07.2006
Beiträge: 133

BeitragVerfasst am: 24.06.2012, 10:04    Titel: Antworten mit Zitat

Ich habe zwar noch nicht das eigentliche "Doko-Server-Programm" auf Freebasic umgestellt, aber ich habe eine kleine "Pinnwand" gebaut, auf der die Clients Nachrichten senden können, um so "Dates" zum Spielen auszumachen.
Den "Pinnwand-Server" habe ich mit obigen TSNE-Code geschrieben.
Wow, kann ich nur sagen.
Die Daten kommen erheblich zuverlässiger an als beim GFA-Doko-Server, bei welchem die Clients immer mal wieder "nachfragen" müssen, weil einige Daten nicht angekommen sind.
Noch einmal ein sehr grosses Lob an ThePuppetMaster!

Eine kleine Fehlermeldung bekomme ich immer vom Freebasic-Pinnwand-Server:

Z:\DokoServer_FB\FBIDETEMP.bas(391) warning 25(0): Overflow in constant conversion

Es läuft aber dennoch alles wunderbar.

Spielt eigentlich jemand von euch Doko?
Wir können noch (nette!!) Spieler gebrauchen.
Mehr Infor hier:
http://www.hundertdrei-allerlei.de/flockenland/index.htm
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 24.06.2012, 13:37    Titel: Antworten mit Zitat

stevie1401 hat Folgendes geschrieben:
Die Daten kommen erheblich zuverlässiger an als beim GFA-Doko-Server, bei welchem die Clients immer mal wieder "nachfragen" müssen, weil einige Daten nicht angekommen sind.

...hast du da UDP statt TCP verwendet?
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
stevie1401



Anmeldungsdatum: 04.07.2006
Beiträge: 133

BeitragVerfasst am: 24.06.2012, 14:46    Titel: Antworten mit Zitat

Nein, TCP.
Den kleinen Fehler mit der Meldung " Overflow in constant conversion " hab ich inzwischen gefunden. Ich habe eine Variable als Integer anstatt Uinteger übergeben.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
stevie1401



Anmeldungsdatum: 04.07.2006
Beiträge: 133

BeitragVerfasst am: 25.07.2012, 17:11    Titel: Antworten mit Zitat

Ich befasse mich gerade mit dem TSNE-Server.
Die sub:

Sub TSNE_NewData (ByVal V_TSNEID as UInteger, ByRef V_Data as String)
StringFromClient = V_Data
'hier kannst du jetzt deine Nachricht verarbeiten

Do

sleep 5
VerarbeiteClientMessage(StringFromClient)

loop until BedingungErfüllt=1


End Sub

..arbeitet in einem Thread, oder?
Nun begreife ich die Threads nicht so richtig. Das sind eigene Prozesse, oder?
Was passiert denn nun, wenn ich in der sub TSNE_NewData irgendeine Schleife einbaue, die auf etwas warten soll.
Stockt dann das ganze Programm oder können dann dennoch andere Clients an den Server etwas senden?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4597
Wohnort: ~/

BeitragVerfasst am: 25.07.2012, 18:09    Titel: Antworten mit Zitat

Threads laufen nebeneinander ab, d. h. du kannst durchaus einen Thread auf ein Ereignis warten lassen, während die anderen weiter ausgeführt werden. Wichtig ist allerdings, wie viel Arbeitsressourcen der Thread für sich in Anspruch nimmt - du solltest auf jeden Fall sicher stellen, dass dein Thread regelmäßig die Kontrolle an das Betriebssystem zurückgibt, damit auch andere Threads zum Zug kommen können. In FreeBASIC kannst du das z. B. durch einen regelmäßigen Aufruf eines SLEEP 1 (oder hier SLEEP 5 - in der Größenordnung ist das kein Unterschied) erreichen.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
stevie1401



Anmeldungsdatum: 04.07.2006
Beiträge: 133

BeitragVerfasst am: 25.07.2012, 22:39    Titel: Antworten mit Zitat

Das hilft mir schon einmal weiter, vielen Dank.
Allerdings habe ich nicht vor an den Threads der TSNE zu schrauben, weil ich da keinen Durchblick habe.
Ich würde halt einfach nur eine Schleife einbauen, die, wenn eine Bedingung nicht erfüllt wird, nach einer gewissen Zeit beendet wird.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4597
Wohnort: ~/

BeitragVerfasst am: 26.07.2012, 13:52    Titel: Antworten mit Zitat

Mit
Code:
Do

sleep 5
VerarbeiteClientMessage(StringFromClient)

loop until BedingungErfüllt=1

kannst du eigentlich (auslastungsmäßig) nicht viel falsch machen, sofern ein einzelner Aufruf von VerarbeiteClientMessage nicht das System für längere Zeit blockiert. Wenn du die Überprüfung nur in größeren Abständen brauchst (z. B. weil es reicht, wenn die Nachricht nicht sofort, sondern in den nächsten paar Sekunden verarbeitet wird), könntest du bei Bedarf auch die Pause höher schrauben (würde ich aber nur machen, wenn du den Unterschied der Auslastung tatsächlich spüren kannst).

Wenn Threads für dich neu sind, solltest du dir unbedingt den Umgang mit Mutexen gründlich ansehen - das ist eine Sache, bei der du bei fehlerhafter / fehlenden Anwendung durchaus mal einen Programmabsturz provozieren kannst.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
stevie1401



Anmeldungsdatum: 04.07.2006
Beiträge: 133

BeitragVerfasst am: 29.07.2012, 09:21    Titel: Antworten mit Zitat

Mit welchem Befehl kann ich denn beim Server einem Client mit Absicht den Connect verweigern? Das brauche ich ja, wenn er ein falsches Kenn-Passwort eingibt.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 29.07.2012, 11:05    Titel: Antworten mit Zitat

Es ist ein Unterschied, ob du einen Client einfach ablehnst oder ob du ihn ablehnst, weil er ein falsches Passwort verwendet.

In deinem Fall musst du erst die Verbindung normal zulassen und dir das Passwort schicken lassen, wie sonst willst du es überprüfen. Falls das Passwort richtig ist, bleibt die Verbindung bestehen, sollte es falsch sein, disconnectest du den Client wieder. Dafür gibt es folgende Befehle:
Code:
TSNE_Disconnect(G_Client)   'Client beenden
TSNE_WaitClose(G_Client)    'Warten bis Client beendet ist
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
stevie1401



Anmeldungsdatum: 04.07.2006
Beiträge: 133

BeitragVerfasst am: 29.07.2012, 12:41    Titel: Antworten mit Zitat

Ja, das stimmt natürlich^^
Vielen Dank für die Antwort.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
stevie1401



Anmeldungsdatum: 04.07.2006
Beiträge: 133

BeitragVerfasst am: 23.08.2012, 11:43    Titel: Antworten mit Zitat

So, mein Doko-Server ist inzwischen in Freebasic umgeschrieben worden und läuft prima. So gut, dass ich mich entschieden habe, ihn auf einem Linux-VServer laufen zu lassen.
Ich habe mir mal das Angebot angeschaut: vS Neptun light für 4,99
http://www.netcup.de/vserver/#vslightfeatures
Das sollte ja für einen kleinen Doko-Server langen, oder?
Meine Linux-Kenntnisse sind so..naja.
Erweiterte Grundkenntnisse, würde ich mal sagen.
Gibt es irgendwo eine Anleitung wie man einen VServer bedient?
Ich wäre über jede Hilfe dankbar lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 23.08.2012, 12:02    Titel: Antworten mit Zitat

stevie1401 hat Folgendes geschrieben:
Ich habe mir mal das Angebot angeschaut: vS Neptun light für 4,99
http://www.netcup.de/vserver/#vslightfeatures
Das sollte ja für einen kleinen Doko-Server langen, oder?

Ja, würde ich sagen.

stevie1401 hat Folgendes geschrieben:
Gibt es irgendwo eine Anleitung wie man einen VServer bedient?

Der vServer wird genauso bedient / administriert wie ein physischer Linux-Server. Wenn du zu Hause Windows verwendest, benötigst du PuTTY, um via SSH auf den Server zuzugreifen. Die gesamte Administration erfolgt dabei über die Shell, die du von überall aus mit SSH erreichen kannst.
Wenn du nach Büchern oder Tutorials zur Administration suchst, musst du nicht speziell nach "vServer-Administration" suchen, sondern kannst nach "Linux-Server-Administration" Ausschau halten. Der vServer wird genauso administriert wie ein "echter" - mit dem einzigen wesentlichen Unterschied, dass du beim vServer nicht den Kernel auswechseln kannst.
_________________

Der Markt regelt das! | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2507
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 24.08.2012, 20:45    Titel: Antworten mit Zitat

Am besten zu Hause ein Linux-Testsystem (alter PC oder ebenfalls virtualisiert, z.B. VMware Player) einsetzen, möglichst mit derselben Distribution wie auf dem vServer. So können heiklere Operationen vorab getestet und durchgespielt werden, bevor sie auf dem produktiven vServer umgesetzt werden.

Optimal ist, wenn Du vom vServer eine 1:1-Kopie in einer Virtualisierungsumgebung bei Dir laufen lassen kannst.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
stevie1401



Anmeldungsdatum: 04.07.2006
Beiträge: 133

BeitragVerfasst am: 24.08.2012, 22:18    Titel: Antworten mit Zitat

Och, ich habe hier genügend richtige PCs rumstehen, das soll nicht das Problem sein.
Eine Schwierigkeit sehe ich auf den VServer zuzugreifen und da Daten von zuhause aus hinzubekommen.
Konsolenbefehle sind so garnicht mein Ding, muss ich gestehen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1837
Wohnort: [JN58JR]

BeitragVerfasst am: 24.08.2012, 22:26    Titel: Antworten mit Zitat

du kannst auf einen linux vserver mit "winscp" von windows aus wie mit einem ftp programm datein hin und her übertragen.

winscp nutzt das ssh protokoll. daher musst du eigentlich bis auf einen ssh-server (der schon druf is) nix zusätzlich installieren.


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Flo
aka kleiner_hacker


Anmeldungsdatum: 23.06.2006
Beiträge: 1210

BeitragVerfasst am: 26.08.2012, 15:47    Titel: Antworten mit Zitat

stevie1401 hat Folgendes geschrieben:
Och, ich habe hier genügend richtige PCs rumstehen, das soll nicht das Problem sein.
Eine Schwierigkeit sehe ich auf den VServer zuzugreifen und da Daten von zuhause aus hinzubekommen.
Konsolenbefehle sind so garnicht mein Ding, muss ich gestehen.


dann, entschuldige, finger weg von einem vserver. lern erstmal, ein unixoides system mit der kommandozeile zu bedienen und frag in ein, zwei jahren nochmal zwinkern
du kannst - wiegesagt - ziemlich viel kaputt/falsch machen, und es wäre für dich äußerst unangenehm, wenn dein server gehackt und für illegale sachen missbraucht wird.
_________________
MFG
Flo

Satoru Iwata: Wer Spaß am Spielen hat, fragt nicht nach Grafik.

zum korrekten Verstaendnis meiner Beitraege ist die regelmaessige Wartung des Ironiedetektors unerlaesslich.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 26.08.2012, 16:01    Titel: Antworten mit Zitat

Flo hat Folgendes geschrieben:
dann, entschuldige, finger weg von einem vserver. lern erstmal, ein unixoides system mit der kommandozeile zu bedienen und frag in ein, zwei jahren nochmal zwinkern
du kannst - wiegesagt - ziemlich viel kaputt/falsch machen, und es wäre für dich äußerst unangenehm, wenn dein server gehackt und für illegale sachen missbraucht wird.

Naja, wenn er auf dem Server nur SSH und seinen eigenen DoKo-Serverdienst laufen lässt (und keinen eventuell falsch konfigurierten MTA, FTPd, ...) und außerdem regelmäßig die Systemupdates einspielt (apt-get update && apt-get upgrade), sollte da normalerweise ja nichts schiefgehen. Es sei denn, er konfiguriert SSH ganz böse falsch oder nimmt "test" als root-Passwort... grinsen
_________________

Der Markt regelt das! | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Flo
aka kleiner_hacker


Anmeldungsdatum: 23.06.2006
Beiträge: 1210

BeitragVerfasst am: 27.08.2012, 10:50    Titel: Antworten mit Zitat

Sebastian hat Folgendes geschrieben:
Flo hat Folgendes geschrieben:
dann, entschuldige, finger weg von einem vserver. lern erstmal, ein unixoides system mit der kommandozeile zu bedienen und frag in ein, zwei jahren nochmal zwinkern
du kannst - wiegesagt - ziemlich viel kaputt/falsch machen, und es wäre für dich äußerst unangenehm, wenn dein server gehackt und für illegale sachen missbraucht wird.

Naja, wenn er auf dem Server nur SSH und seinen eigenen DoKo-Serverdienst laufen lässt (und keinen eventuell falsch konfigurierten MTA, FTPd, ...) und außerdem regelmäßig die Systemupdates einspielt (apt-get update && apt-get upgrade), sollte da normalerweise ja nichts schiefgehen. Es sei denn, er konfiguriert SSH ganz böse falsch oder nimmt "test" als root-Passwort... grinsen


oder er hat einen winzigkleinen Bufferoverflow in seinem Serverdienst, mit dem man tolle Dinge anstellen kann :>
(den Serverdienst lässt er möglichst als root laufen, weil als Initscript gestartet, das erspart es mir, einen Rootexploit zu finden)



stevie, mal im Ernst: nimm den billigsten Rootserver den man kriegen kann: einen Rechner, den du noch rumstehen hast, oder eine Virtuelle Maschine auf einem Leistungsfähigen Rechner bei dir.

Dein Projekt wird (nehme ich mal an) vermutlich nicht übermäßig viele User haben, sodass du eine fette Backboneanbindung benötigst. Und einen Rechner, den du falls nötig auch mal aus dem Fenster werfen kannst, kannst du einfacher administrieren (Beispiel: du machst einen Typo bei der SSH-konfiguration, der SSH-Server beendet sich, versucht neu zu starten, scheitert an der kaputten SSH-Konfiguration. Was tust du jetzt? (mir ist klar, dass man das relativ einfach beheben kann. Wenn man weiß, wie))

Ein Riesenvorteil, wenn du den Server in deinem Haus stehen hast: du siehst und hörst, wenn er komische Dinge tut (z.B. der Lüfter auf einmal röhrt, ohne dass allzuviele Leute connected sind.)
Und, selbst wenn er gehackt wird: erstens bist du nur ein Netzwerkkabel davon entfernt, ihn stillzulegen. und zweitens können Cracker über deine (vermutlich vergleichsweise mickrige) Internetverbindung nicht so viel Schaden (z.B. via DDoS-Attacken) anrichten als über einen VServer. Und wieder: du wirst es merken, denn eine DDoS-Attacke legt i.d.R. nicht nur das Ziel, sondern auch dich lahm.
_________________
MFG
Flo

Satoru Iwata: Wer Spaß am Spielen hat, fragt nicht nach Grafik.

zum korrekten Verstaendnis meiner Beitraege ist die regelmaessige Wartung des Ironiedetektors unerlaesslich.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 27.08.2012, 11:18    Titel: Antworten mit Zitat

Flo hat Folgendes geschrieben:
oder er hat einen winzigkleinen Bufferoverflow in seinem Serverdienst, mit dem man tolle Dinge anstellen kann :>
(den Serverdienst lässt er möglichst als root laufen, weil als Initscript gestartet, das erspart es mir, einen Rootexploit zu finden)

Das setzt allerdings voraus, dass jemand gezielt und von Hand den (nicht öffentlich bekannten, undokumentierten) "DoKo-Serverdienst" auf dem privaten Hobby-vServer angreift.

Ich könnte mir vorstellen, dass ungepatchte alte Standardsoftware da ein beliebteres Angriffsziel für Hacker und automatisierte Angriffstools darstellt.
_________________

Der Markt regelt das! | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
stevie1401



Anmeldungsdatum: 04.07.2006
Beiträge: 133

BeitragVerfasst am: 15.09.2012, 08:49    Titel: Antworten mit Zitat

Floh, danke für deine ehrlichen Worte zwinkern
Also ich will es mal so sagen:
Zur Zeit läuft das Serverprogramm, welches inzwischen ein Freebasic-Konsolen-Programm ist, unter Windows auf einem meiner Rechner und macht nicht die geringsten Probleme. Es läuft wie ein alter VW. Nicht kaputt zu kriegen.
Unter Windows deshalb, weil ich mit Linux leider Probleme habe. Da sagt der Server immer, er kann die Ports nicht binden, warum er das nicht kann, habe ich bis jetzt nicht herausfinden können.
Selbst bei einer ausgeschalteten Firewall kann das Linux-Server-Programm die Ports nicht binden...

Natürlich hat es Vorteile, wenn der Server auf dem eigenen Rechner läuft. Es gibt allerdings auch erhebliche Nachteile.
Mein Router wählt sich ca. 2-3x täglich neu ein. In dem Moment fliegen erst einmal alle Spieler raus und wissen gar nicht was los ist.
Es gibt zwar im Client eine Hilfe, in welcher steht, dass man sich nach 1-2 Minuten neu verbinden kann, aber mit der Hilfe ist es so wie mit einer „readme.txt“ Datei. Liest kein Schwein.
Dann habe ich auch noch meine Kinder, die sehr viel mit Youtube und ähnlichen Plattformen etwas machen, was sehr viel Traffic kostet. Das wirkt sich langsam störend auf den Spielverlauf aus.
Und ich denke, dass wir demnächst etwas mehr Zulauf bekommen werden, weil wir das ganze Projekt etwas „öffentlicher“ anpreisen werden.
Bis jetzt sind wir ca. 100 angemeldete Spieler, die zwar nicht alle gleichzeitig spielen, aber ich denke, dass demnächst ca. 40-60 Spieler gleichzeitig spielen werden. Ist das noch mit einer kleinen DSL Leitung zu machen?
Und zu guterletzt bin ich auch nicht immer da.
Letztens war ich über das Wochenende weg und wie es denn so ist, war hier ein großes Gewitter mit Stromausfall. Somit fiel der Doko-Server aus und niemand war da, der den Server hätte wieder anstellen können.

Ich denke, ich komme um einen vServer nicht herum, ob ich das nun mag (oder kann) oder nicht.
Sollte der vServer mal gehakt werden, wäre das, glaube ich, nicht wirklich sooo dramatisch.
Das Flockenland-Projekt ist ein nicht-kommerzielles, privates Projekt, in welchem keinerlei private Daten gespeichert werden.

Aber wenn ich schon nicht oder nur schwer in der Lage bin einen vServer aufzusetzen, hat einer von euch vielleicht Lust am Projekt mitzuwirken?
Das wäre natürlich eine große Hilfe zwinkern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Off-Topic-Forum Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite Zurück  1, 2, 3, 4, 5  Weiter
Seite 4 von 5

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz