Server
Übersicht

Mr.XBetreff: Server |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi hab mal ne server include geschrieben.
Mit ihr kann man leicht einen server realisieren. Er kennt "schon" 2 befehle: ![]() Zum anmelden auf dem server. ![]() zeig eine server info kann nach belieben verendern. Das ist der Code: Code: [AUSKLAPPEN] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;Anfag der Classe;;;;;;;;;;;;;;;;;;;;; Type Client ;Die Id des streams Field Id ;Die Ip des Clientes Field Ip$ ;Der Benutzername Field Username$ ;Eingeloggt? Field logget% End Type ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Function server_erstellen(port%=22,Timeout%=6000) ;Server erstellen ;Tcp Timeout einstellen ;Timeouts verlängern TCPTimeouts(Timeout%,0) ;Serverstarten svrServer%=CreateTCPServer(port%) ;Und fehler abfangen If svrServer<>0 Then Return svrServer% Else Return 0 End If End Function ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Function Client_accept(tcp) strStream=AcceptTCPStream(tcp) ;Wenn ein Client sich meldet... If strStream Then ;Neuen User erstellen usr.Client=New Client ;User Id = Stream usr\Id=strStream ;Stream Ip abfragen streamip=TCPStreamIP(usr\Id) ;Ip mit punkten versehen Ip$=DottedIP$(streamip) ;Ip in user\Ip ablegen usr\Ip=Ip$ ;;;;;;;;;;;;;;;;Anmelde Status auf server anzeigen;;;;;;;;;;;;;;;; Print "Client hat sich angemeldet Ip:"+usr\Ip+" Am: "+CurrentDate()+"-"+CurrentTime() ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Begrüßung senden WriteString(usr\Id,">>Willkommen "+usr\Ip) WriteString(usr\Id,">>Serverzeit: "+CurrentTime()+"-"+CurrentDate()) End If ;Und fertig End Function ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Function Client_empfangen() ;prüfen ob ein user eine nachricht gesendet hat For usr.Client=Each Client If ReadAvail(usr\Id) Command$=ReadString(usr\Id) Hdc=Handle(usr) ;///////Eigene functionen hier//////// Befehle(Command$,Hdc) ;///////////////////////////////////// End If Next End Function ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Function Befehle(Command$,usr);Function um die befehle auszuwerten u.Client=Object.Client(usr) ;////////////////////////////////////////////// If Instr(Command$,"Auth:",1);Wenn in Command$ "Auth:" an erster stelle kommt ;;;;;;;;;;;;;;;;;;;;;;;;;; ;Pass wort und benutzernam isolieren Text1$=Mid$(Command$,6) leer%=Instr(Text1$," ",1) name$=Mid$(Text1$,1,leer%) wort$=Mid$(Text1$,leer%) u\Username$=Trim$(name$) Passwort$=Trim$(wort$) ;;;;;;;;;;;;;;;;;;;;;;;;;; ;Und die abfrage wenn Passwort$="Werneke" und logget% =0 ;Kann aber noch verbessert werden ;-) If Passwort$="DasPasswort" And u\logget%=0 Color 0,255,0 u\Logget%=1 Print "Anmeldung als "+u\Username$+" Um "+CurrentTime()+"-"+CurrentDate() WriteString(u\Id,"Eingeloggt Just Fun!") Color 255,255,255 Else Color 255,0,0 WriteString(u\Id,"Anmeldung Fehlgeschlagen") WriteString(u\Id," Schon eingeloggt?") Print "logversuch gescheitert User Ip:"+u\Ip+" Um "+CurrentTime()+"-"+CurrentDate() Color 255,255,255 End If ;;;;;;;;;;;;;;;;;;;;;;;;;; ElseIf Instr(Command$,"Info",1);Wenn in Command$ "Info" an erster stelle kommt WriteString(u\Id,"-------Server Info---------") WriteString(u\Id,"Server: ~My Server~") WriteString(u\Id,"Serverzeit: "+CurrentTime()) WriteString(u\Id,"Serverdatum: "+CurrentDate()) WriteString(u\Id,"ServerIp: 127.0.0.1") WriteString(u\Id,"-----Server info ende------") ;################################################## ;############Eigene befehle mit Elseif############# ;####################!!Hier!!###################### ;################################################## Else WriteString(u\Id,"Befehl nicht gefunden");Wenn nicht zutrift End If ;/////////////////////////////////////////////// End Function Die functionen lauten: ![]() Einen server erstellen. ![]() Auf Client`s warten ![]() Auf Nachrichten prüfen und verarbeiten. Und man kann leicht noch eigene befehle hinzufügen. So und ein server sieht dann so aus: Code: [AUSKLAPPEN] Include "E:\server.bb" ;Hauptschleife Print "Server wird gestartet..." svr=server_erstellen(22,999999999) While Not KeyHit(1) ;Die functionen aufrufen Client_Accept(svr) Client_Empfangen() Wend End Viel spass damit. |
||
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
Was spricht dafür, den Port, der für verschlüsselte daten gedacht ist, für soetwas zu missbrauchen? | ||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
Mr.X |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wusste nicht das das ein verschlüsselter port ist kann man ja ändern ![]() |
||
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
Naja, ist eine schöne Idee. Bietet aber einen großen Nachteil:
Eigentlich muss man sich selbst Protokolle erstellen, die auf das jeweilige Programm zugeschnitten sind. Sehr sinnvoll sind so wenige, spezifische Funktionen nicht. |
||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
Mr.X |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Mann kann auch selbst noch befehle einfügen dann ist das nicht mehr so spezifisch. | ||
Garfield12Betreff: Frage |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich hab mal gestöbert und das hier entdeckt.
Wie mach ich das richtig??? Also ersten Code als bb-File speichern und zweites Programm ausführen (F5en)??? Wenn ja klappt das bei mi nicht. MfG |
||
![]() |
the FR3AK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wie wärs mit ner PM an den Autor dieses Threads?
Jetzt hast du diesen Monate alten Thread wieder hochgeholt ![]() |
||
#ReaperNewsposter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Und wie wärs damit, beide Programme gleichzeitig auszuführen? -.-
Da die meisten IDE's dann aber das eine Progg automatisch beenden, musste bei z.B. dem Server selber die Exe starten.. ![]() |
||
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7 |
Mr.X |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Den richtigen pfad bei "include" eingeben.
dann den Server starten und dan den Client ( Client müsst ihr erst schreiben!) dan klappt es. |
||
- Zuletzt bearbeitet von Mr.X am Sa, Aug 04, 2007 19:00, insgesamt einmal bearbeitet
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
Jop. Mit der B3D Standard IDE geht es aber auch xD | ||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
![]() |
DerKeks |
![]() Antworten mit Zitat ![]() |
---|---|---|
hat jemand nen funktionierenden client für das server system? den er mir vllt ma "leihen" könnte? ( kriegt ihn auch wieder ohne kratzer ![]() also ich hab mich ma an nem client versucht aber er will nicht... das ist der bisherige hafen müll-code: Code: [AUSKLAPPEN] con_ip = Input("Ip des Servers: ")
con_port = Input("Port des Servers: ") connect = OpenTCPStream(con_ip, con_port) If connect<>0 Then Delay 1000 Cls Print "Erfolgreich verbunden!" Else Print "ERROr" EndIf WaitKey End ich habe bei IP die DottedIP und die normale integer-IP eingetragen aber beides klappt nicht... hat einer ne ahnung wo das problem liegt oder hat sogar einer nen funzenden client für mich? |
||
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
wssen ip hast du eingegeben und wo ist der server gestartet | ||
![]() |
DerKeks |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich hab client und server auf meinem PC laufn lassen
ich habs mit 127.0.0.1, der dottedIP und der normalen IP von "TCPStreamIP" versucht... aber bei keiner kommt was ( also nur das "ERROR" ) |
||
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] con_ip = Input("Ip des Servers: ")
eine dotted ip ist ein string also solltest du auch ne string variable nehmen sonst macht er aus dem string ne zahl und die rerste zahl die bei "127.0.0.1" steht ist 127. was bleibt ist ein opentcpstream der zum server 127 versucht zu connecten... |
||
![]() |
DerKeks |
![]() Antworten mit Zitat ![]() |
---|---|---|
ok^^ ich werds mal versuchen..
edit: ok jez klappts ![]() |
||
![]() |
DerKeks |
![]() Antworten mit Zitat ![]() |
---|---|---|
erstma sorry wegen doppelpost..
aber ich hab jetzt das problem dass ich connecten kann ( "Erfolgreich Verbunden" kommt ) nur leider kommt weder die begrüssung aus Client_Accept(stream) noch kann ich befehle weitergeben :/ im server wird angezeit dass sich ein neuer client angemeldet hat und wann un so aber der client will noch ned richtig... hier mal der problemcode: Code: [AUSKLAPPEN] Include "S_lib.bb"
con_ip$ = Input("Ip des Servers: ") con_port = Input("Port des Servers: ") connect = OpenTCPStream(con_ip$, con_port) Repeat If connect<>0 Then Delay 1000 Cls Print "Erfolgreich verbunden!" cmd$ = Input("=>") Befehle(cmd$, usr) Client_Accept(connect) Client_Empfangen() Else Print "ERROr" EndIf Until KeyHit(1) WaitKey End hoffentlich kann mir wer helfen =/ edit: es klappt weder wenn ich die befehl abfrage im client noch wenn ich die befehle übern server eingeben will... imma kommt MAV error -.- |
||
Mr.X |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
der server ist völlig falsch geschrieben hab ganz oben gezeigt wie man es richtig macht.
und wieso Opentcptream?!, und was soll der befehl "Befehle()" machen?!. [EDIT] Nein das war nicht so wichtig sorry, wegen dem hoch holen. hab nicht drauf geachtet! ![]() |
||
- Zuletzt bearbeitet von Mr.X am So, Aug 08, 2010 8:14, insgesamt einmal bearbeitet
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
War das jetzt so wichtig, dass du einen 3 Jahre alten Thread ausgraben musstest? | ||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group