UDP?

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

juse4pro

Betreff: UDP?

BeitragDo, Feb 12, 2009 18:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

wollt ma fragen, wie ich in BlitzMax UDP verwende...

den befehl: CreateUDPStream scheint es ja nicht zu geben...
Portfolio |LinkedIn |XING

ChaosCoder

BeitragDo, Feb 12, 2009 18:39
Antworten mit Zitat
Benutzer-Profile anzeigen
einfach mal bnetex angucken (hier im modulforum zu finden) da sind auch beispiele dabei.
Projekte: Geolaria | aNemy
Webseite: chaosspace.de

juse4pro

BeitragDo, Feb 12, 2009 18:45
Antworten mit Zitat
Benutzer-Profile anzeigen
?
ich dachte, das wäre schon dran, nen server habe ich nämlich schon (python)
ich brauch echt bloß die standarts, wie Createudpstream, sendudpmsg, closeudpstream usw...
Portfolio |LinkedIn |XING
 

#Reaper

Newsposter

BeitragDo, Feb 12, 2009 19:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Entweder du nimmst BNetEx von Vertex, oder du musst z.B. CreateUDPSocket() von BMax verwenden.
Ich würde dir BNetEx empfehlen. Wink
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

juse4pro

BeitragDo, Feb 12, 2009 19:39
Antworten mit Zitat
Benutzer-Profile anzeigen
danke, ich möchte hier mal alles selber machen...
Very Happy

wie verwende ich denn CreateUDPSocket, oder gibt's da nen tutorial?
Portfolio |LinkedIn |XING
 

Dreamora

BeitragDo, Feb 12, 2009 21:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Gibt duzende tutorials dazu wie man sockets verwendet, allerdings nicht für BM sondern für andere mehr genutzte sprachen.

Sollte jedoch kein problem sein da die sockets überall gleich funktionieren.
erwart dir davon jedoch keine 3 zeilen lösung denn sockets sind alles andere als einfach.

Wenn du dich also nicht die nächsten wochen mit netzwerkprogrammierung auseinander setzen willst, nimm BNetEx von Vertex. Das macht genau das was du machen willst, nämlich die Sockets nutzen ( wie jede netzwerk library ) nur das es in schön wiederverwendbaren Code eingebettet ist.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

juse4pro

BeitragFr, Feb 13, 2009 16:46
Antworten mit Zitat
Benutzer-Profile anzeigen
nagut, ich werde mir mal BNetEx angucken... danke für die hilfe Wink
Portfolio |LinkedIn |XING

juse4pro

BeitragDi, Feb 24, 2009 13:00
Antworten mit Zitat
Benutzer-Profile anzeigen
*hust*

sry, mir ist aber aufgefallen, dass ich doch selber socket-programmierung machen will, und dazu habe ich ein paar fragen:

1. wenn ich ein UDPSocket erstellt habe, wie muss ich den port, ip, zielport und ziel ip festlegen?
2. muss mach dieses socket connecten oder binden (oder beides)?
3. danach create ich einen TSocketStream, kann ich ihn verwenden wie filestreams (readbyte, readshort usw..)
4. wenn ich mein paket geschrieben habe, wie sende ich die daten ab und wie kann ich überprüfen, ob ich eine nachricht erhalten habe.

Gruß, mortus
Portfolio |LinkedIn |XING

Firstdeathmaker

BeitragDi, Feb 24, 2009 16:01
Antworten mit Zitat
Benutzer-Profile anzeigen
1. wenn ich ein UDPSocket erstellt habe, wie muss ich den port, ip, zielport und ziel ip festlegen?
2. muss mach dieses socket connecten oder binden (oder beides)?

ServerSocket.Bind(port:int)
ClientSocket.Bind(port:int)
ClientSocket.Connect(remoteIp:int,remotePort:int)
würde ich mal sagen...


3. danach create ich einen TSocketStream, kann ich ihn verwenden wie filestreams (readbyte, readshort usw..)
Ja, du kannst alle Befehle die TSocketStream von TStream bekommt benutzen.

4. wenn ich mein paket geschrieben habe, wie sende ich die daten ab und wie kann ich überprüfen, ob ich eine nachricht erhalten habe.
Absenden: du schreibst einfach nur in den Stream, kein Send() nötig. Besser ist es aber, die daten vorher zu puffern und als Paket zu verschicken.
Empfang prüfen: Weis ich leider nicht. Wenn man versucht SocketStream zu lesen wenn nichts da ist, blockiert er.

Code: [AUSKLAPPEN]
Local clientSocket:TSocket = CreateUDPSocket()
Local serverSocket:TSocket = CreateUDPSocket()

Print DottedIP(HostIp("localhost"))

clientSocket.Bind(8000)
serverSocket.Bind(8001)
clientSocket.Connect(HostIp("localhost") , 8001)


clientStream:TStream = CreateSocketStream(clientSocket)
serverStream:TStream = CreateSocketStream(serverSocket)

Print "server Streamsize: "+Eof(serverStream)
WriteInt(clientStream , 5)
Print "server Streamsize: "+Eof(serverStream)
Print ReadInt(serverStream)
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon
Gewinner des BCC #57 User posted image

juse4pro

BeitragDi, Feb 24, 2009 17:12
Antworten mit Zitat
Benutzer-Profile anzeigen
mir wurde oft gesagt, dass ich UDP nicht konnektieren muss, warum muss ich es doch?

und was ist die remote Ip oder der remote port? Wink
Portfolio |LinkedIn |XING
 

#Reaper

Newsposter

BeitragDi, Feb 24, 2009 17:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei UDP ist es dann auch keine Connection, jedoch muss du dennoch angeben, wohin er es schicken soll. Wink
Der Remote (engl. "entfernt(er)") PC ist eben der PC, der es empfangen soll. Also die Grundkenntnisse von Netzwerk sollte man schon haben... :-\
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

juse4pro

BeitragDi, Feb 24, 2009 17:31
Antworten mit Zitat
Benutzer-Profile anzeigen
also dass das so sein soll wusste ich schon, ich wusste nur nicht, dass der begriff remote dies beschreibt Razz
Portfolio |LinkedIn |XING

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group