TCP udp... ich kappiers immernochnet

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

beanage.johannes

Betreff: TCP udp... ich kappiers immernochnet

BeitragDo, Sep 24, 2009 19:25
Antworten mit Zitat
Benutzer-Profile anzeigen
hi, ich verstehe das absolut nicht .

könnte vieleicht jemand mal einen ganz simplen server und client posten danke

Mathias-Kwiatkowski

BeitragSa, Sep 26, 2009 14:27
Antworten mit Zitat
Benutzer-Profile anzeigen
jo ganz simpel mhh moment, des is nu udp


CLient:
Code: [AUSKLAPPEN]
Import vertex.BNetEx

Global Socket:TSocket
Global StreamTCP:TStream
Global Stream:TUDPStream

Stream = New TUDPStream
If Not Stream.Init() Then Throw("Can't create socket")
'Stream.SetRemoteIP(TNetwork.IntIP(DottedIP(HostIp("deinedomain.de"))))
Stream.SetRemoteIP(TNetwork.IntIP(DottedIP(HostIp("localhost"))))
Stream.SetRemotePort(6001)


Beim Client auslesen (also wenn etwas ankommt)

Code: [AUSKLAPPEN]
Function ServerInstructions()
   If Stream.RecvAvail() Then
      While Stream.RecvMsg() ; Wend
      If Stream.Size() > 0 Then
         While Not Stream.Eof()
            
            Reply:String = Stream.ReadLine()  'das is angekomm

                       Wend
      EndIf
   EndIf
End Function



Das Senden zum Server
Code: [AUSKLAPPEN]
WriteLine Stream, "Das wird gesendet"
   Stream.SendMsg()





Nun Der Server:
Code: [AUSKLAPPEN]
Import vertex.BNetEx

Global StreamUDP:TUDPStream
StreamUDP= New TUDPStream
If Not StreamUDP.Init() Then Throw("Can't create socket")
StreamUDP.SetLocalPort(6001)



Das empfangen von daten (vom client)
Code: [AUSKLAPPEN]
If StreamUDP.RecvAvail() Then
   While StreamUDP.RecvMsg() ; Wend
   If StreamUDP.Size() > 0 Then   
      While Not StreamUDP.Eof()
         Ankunft:String = StreamUDP.ReadLine()'das kommt an
                Wend
       endif
endif




Wenn du was verschicken willst am client wirds kompli
Code: [AUSKLAPPEN]
StreamUDP.SetRemoteIP(TNetwork.IntIP(TNetwork.StringIP(StreamUDP.GetMsgIP()))) ports:Int = Int(StreamUDP.GetMsgPort()) StreamUDP.SetRemotePort(ports)
            StreamUDP.WriteLine("Sende zum Client")
            StreamUDP.SendMsg()      


das senden zum client is nun direct zum client der angefragt hat, wenn du vor hast ein mmorpg zu machen, dann würd ich port ip, in einem type zwischensichern, z.b.

port
ip
name

name=name des gammers
wenn du nun daten übermitteln willst, z.b. bewegungen musste es nur aus dem type nehm und an alle schicken, effektivier weise kannst du gern noch status mit im type nehm, also ob online oder offline gammer,

sei gewarnt, ein online mmorpg kannst du nich einfach auf dein pc machen jedenfalls nich den server, sei den es sind weniger spieler, je mehr spieler desto grösser die herrausvorderung. damit wären wir beim root server.

naja wie dem sei, ich nutz eig nie tcp, nochnimmals fürs login, nur ich kann dir raten, php mysql, für login pw, diese du dan abrufst mit loadstring ("HTTP::deinedomain.de/login.php") und du schaust ob der login lorreckt is, den rest kannste getrostet über udp laufen lassen.


viel input funtzt aber heave fun


ps. ich seh grad der übernimmt mein code nich so, strucktur deswegen bitte selbst einbaun (etwas arbeit darfste ja haben)





EDIT: -#######################################-
ich seh grad du willst ohne ein modul arbeiten, ich glaub dann kannste meine sachen da nicht verwenden, nur wozu ohne modul, nur weil du eventuell nich weiss wie du modulle einbinden kannst?

wenn das der fall sein sollte schreib mich ruhig an. ich erkläre es gern, hinzu kommt das forum hat ne suchfunktion,

die modulle werden im übrigen entwickelt oder gemacht nur um hilfen zu schaffen, oder halt um fehlende funktionen in bmax hineinzubringen, darum solltest du eventuell doch modulle verwenden grad wenns schnell gehen soll.

ich hoffe die codes haben weitergeholfen und auch diese hilfestellung hilft dir vieleicht weiter. mach ma rückmeldung ^^


EDIT:

aber um es nochmal zu verständlich zu machen
noch mal eine kleine hilfe,

SERVER = Immer gleiche DOMAIN und GLEICHER PORT (in sachen UDP)
die clients jedoch nicht, darum speichere ich auch client port ab ^^ in einem type. vieleicht is das der rätzel lösung für dich.

beanage.johannes

BeitragSa, Sep 26, 2009 21:00
Antworten mit Zitat
Benutzer-Profile anzeigen
dankeschön, hilft mir sehr!

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group