UDP client IP filtern

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

ZaP

Betreff: UDP client IP filtern

BeitragSo, Feb 18, 2007 12:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Hiho!

Ich möchte in meinem script den Datenverkehr des hosts gering halten, um seine bandbreite zu schonen, im grunde dient der Host nur dazu die Spielerzahlen zu übertragen und die Spieler zu verbinden, X,Y,Z etc. übertragen die clients untereinander, wobei mein Problem liegt:
Man überträgt zwar die eigenen Daten an alle anderen, aber auch an sich selbst, d.h. man wird im Spiel ständig von sich selbst verfolgt (sieht extrem lustig aus xD ).
Ich habe mir gedacht, wenn ich client bin und meine eigene IP habe, kann ich das Senden an mich selbst unterdrücken, aber wie finde ich die via UDP heraus?
Starfare: Worklog, Website (download)

Tankbuster

BeitragSo, Feb 18, 2007 12:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Das hier hilft dir sicherlich!
Das ist mein xDOnline Server (nur zu testzwecken)
Zwar nicht formatiert, und einiege "Fields" zuviel^^,aber es funzt auf jeden Fall!xD

MFG: TANK
PS: xD!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Zitat:
Type player
Field x,y,z
Field walk,stand,atk,atk2,beh,back
Field lauf,ruck
Field anim
Field img
Field c
Field skill
Field ip
Field mana
Field rotation
Field send,recv
Field damage
Field byte$
Field id$
Field port
Field satz$
Field links,rechts
Field wait
End Type

Graphics 600,600
Color 0,255,0
Print "START----DRÜCKE ENTER xD"
WaitKey()
stream = CreateUDPStream(8888)
Print "server online!"
While Not KeyHit(1)

ip= RecvUDPMsg(stream)
If ip<>0 Then

While ReadAvail(stream)

byte$=ReadString$(stream)
send$=byte$

If nwort$(byte$, 1)="New"
Name$=nwort$(byte$, 2)
P.player=New player
P\id$=Name$
P\recv=ip
P\port=nwort$(byte$, 3)

ElseIf nwort$(byte$, 1)="Play" Or nwort$(byte$, 1)="Chat" Or nwort$(byte$, 1)="Exit"
Name$=nwort$(byte$, 2)
EndIf

For P.player=Each player
If P\id$<>Name$
Print send$
WriteString(stream,send$)
SendUDPMsg stream,P\recv,P\port
EndIf
Next

Wend
EndIf

Flip 0
Wend

Function nwort$(byte$, wort)
If wort < 1 Then Return ""
trenn$ = " " ;<-- Trennzeichen
byte$ = byte$ + trenn$
w = 0
pos = 1
While w < wort And pos > 0
While Mid$(byte$, pos, 1) = trenn$
pos = pos + 1
Wend
x = pos
y = Instr(byte$, trenn$, pos)
pos = y
w = w + 1
Wend
Return Mid$(byte$, x, y - x)
End Function

Function INT_IP(IP$)
a1=Int(Left(IP$,Instr(IP$,".")-1)):IP$=Right(IP$,Len(IP$)-Instr(IP$,"."))
a2=Int(Left(IP$,Instr(IP$,".")-1)):IP$=Right(IP$,Len(IP$)-Instr(IP$,"."))
a3=Int(Left(IP$,Instr(IP$,".")-1)):IP$=Right(IP$,Len(IP$)-Instr(IP$,"."))
a4=Int(IP$)
Return (a1 Shl 24) + (a2 Shl 16) + (a3 Shl 8 ) +a4
End Function
Twitter
Download Jewel Snake!
Windows|Android

ZaP

BeitragSo, Feb 18, 2007 15:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmhm, ich seh nich ganz wo man da seine eigene IP rausbekommt...
Starfare: Worklog, Website (download)

Tankbuster

BeitragSo, Feb 18, 2007 15:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
ip= RecvUDPMsg(stream)
If ip<>0 Then

Das ist die IP, von der die Nachricht geschickt wurde. Die wird in Zitat:
P\recv=ip
gespeichert !
Twitter
Download Jewel Snake!
Windows|Android

ZaP

BeitragSo, Feb 18, 2007 17:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Axo, also sende ich sozusagen eine Nachricht an mich selber, um meine IP rauszufinden... thx =)
Starfare: Worklog, Website (download)

Tankbuster

BeitragSo, Feb 18, 2007 19:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie ???
Du schickst nichts an dich selbst! Die IP zeig an, von welcher ip du etwas gesendet bekommst!
Twitter
Download Jewel Snake!
Windows|Android

ZaP

BeitragMo, Feb 19, 2007 17:01
Antworten mit Zitat
Benutzer-Profile anzeigen
o0... ich dachte du meintest was anderes... aber auf jeden Fall hab ich jetz ne Lösung, du hast mich zumindest drauf gebracht xD... thx ^^
Starfare: Worklog, Website (download)

Tankbuster

BeitragMo, Feb 19, 2007 17:14
Antworten mit Zitat
Benutzer-Profile anzeigen
JUHHHUUUUU!!
Ich habe eine gute Tat vollbracht!^^ kannst mich ja in den Credits erwähnen Laughing
Twitter
Download Jewel Snake!
Windows|Android

ZaP

BeitragMo, Feb 19, 2007 18:23
Antworten mit Zitat
Benutzer-Profile anzeigen
lol, ok warum nicht? xD
Starfare: Worklog, Website (download)

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group