als server senden....
Übersicht

![]() |
dimasterBetreff: als server senden.... |
![]() Antworten mit Zitat ![]() |
---|---|---|
hallo zusammen
ich habe sonen änlichen server wie der in dem beispiel ausm F&T bereich(unten). jetzt mal zur frage: ich möchte als server z.B. den text "hallo" zusenden. ich möchte aber, dass alles aus dem server programm heraus passiert. also ich möchte, dass der server sich am gespräch der clients beteiligen kann. ich komm aba nich drauf wie ich dat machen könnte ( dass ich nich drauf komme könnte auch am schlafmangel liegen^^ ) Code: [AUSKLAPPEN] ;Type wo die Clients mit ip,port und name drin gespeichert werden
Type client Field name$ Field ip,port End Type port = 7142 ;Serverport udp = CreateUDPStream(port) ;UDP Stream auf port 7142 erstellen ;Wenn der Stream nicht steht Fehlermeldung ausgeben und beenden If Not udp Then Print "Der UDP Stream konnte nicht erstellt werden." End EndIf Print "Server gestartet." Repeat If RecvUDPMsg(udp) <> 0 ;Wenn eine UDP Message eingegangen ist. client_ip = UDPMsgIP(udp) ;IP des Absenders client_port = UDPMsgPort(udp) ;Port des Absenders message = ReadByte(udp) ;Anhand von diesem Byte erkennt der Server was der Client will Select message ;1 = Chatmessage Case 1 name$ = ReadString(udp) ;Wer sendet eine Chatmessage txt$ = ReadString(udp) ;Der Inhalt der Chatmessage Print name$ + ": " + txt$ ;Chatmessage auf dem Server ausgeben ;Nachricht an alle anderen Teilnehmer weitersenden For c.client = Each client ;Jeden Client durchgehen If Not c\name$ = name$ ;Wenn es nicht der Client ist der gerade gesendet hat WriteByte(udp,1) ;Nachrichtentyp 1 senden = Chatmessage WriteString(udp,name$) ;Name weiterleiten WriteString(udp,txt$) ;Inhalt weiterleiten SendUDPMsg udp,c\ip,c\port ;UDP Message absenden EndIf Next ;Neuer Client ist dem Chat beigetreten Case 2 name$ = ReadString(udp) ;Name des Clients lesen c.client = New client ;Neues client objekt erstellen c\ip = client_ip ;Ip speichern c\port = client_port ;Port speichern c\name$ = name$ ;Name speichern ;Servernachricht ausgeben Print name$ + " ist dem Chat beigetreten." ;Allen anderen Clients bescheid sagen das ein neuer da ist. For c2.client = Each client If Not c2 = c WriteByte(udp,2) ;Nachrichtentyp 2 senden = Client beigetreten WriteString(udp,name$) ;Name weiterleiten SendUDPMsg udp,c2\ip,c2\port ;UDP Message senden EndIf Next ;Client hat die Verbindung getrennt Case 3 name$ = ReadString(udp) ;Clientname auslesen ;Client löschen und allen anderen Clients mitteilen For c.client = Each client If c\name$ = name$ Delete c ;Den Client löschen der die Nachricht gesendet hat Else WriteByte(udp,3) ;Den anderen sagen das ein Client weg geht. WriteString(udp,name$) ;Name weiterleiten SendUDPMsg udp,c\ip,c\port ;UDP Message senden EndIf Next ;Servernachricht ausgeben Print name$ + " hat den Chat verlassen." End Select EndIf Until KeyHit(1) CloseUDPStream(udp) ;UDP Stream schliessen End mfg dimaster |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also der Server sich selbst senden?
Dazu musst du es ja eigentlich garnicht senden, sondern einfach den Daten hinzufügen (als ob es gerade angekommen wäre von einem Client und du es verarbeiten würdest). |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
dimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
hmmm ich bin mir jetzt nicht sicher wie?! also ich müsste also simulieren, dass eine nachricht von einem client reinkommt und dann so senden? klar aber wie soll ich dat simulieren? ich bin irgendwie verwirrt ![]() mfg dimaster |
||
![]() |
dimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
könnte mir vielleicht jemand das etwas genauer definieren? | ||
![]() |
dominik |
![]() Antworten mit Zitat ![]() |
---|---|---|
naja du speichserts ja irgendwo das gespärch oder?
entweder einfach nur in nem typefeld oder in ner datei. und da kannst du doch einfach nen neuen eintrag anhängen...... |
||
BB+ 1.41|Sempron 2.8|geforce fx5200|1GB DDR|XP home SP2 / prof. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group