TCP problem

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

beanage.johannes

Betreff: TCP problem

BeitragMi, Jul 22, 2009 12:47
Antworten mit Zitat
Benutzer-Profile anzeigen
hi ich (versuche vergeblich) einen tcp server und einen client zu programmieren. serv ist da, client auch und es müsste eigentlich auch funzen, nur verstehe ich absolut nicht wie ich die beiden komunizieren lassen soll.
ich verbinde den client mit dem server per ConmectSocket(socket,ip,port) nur ist es egal welche ip ich eingebe der client kann sich immer verbinden, was mache ich falsch. gibt es irgend ein beispiel für tcp? das was bei BMax mitgeliefert ist funzt ja nichtmal xD

Danke

Holzchopf

Meisterpacker

BeitragMi, Jul 22, 2009 13:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Netzwerk alleine ist ja eigentlich schon so ne Sache Confused Aber Netzwerk und BMax in Kombination, das ist... äh...

Nungut, irgendwann muss man sich ja dran wagen. Aber so oder so (ob nur zum Testen oder sonstiger Einsatz) ist für all deine Netzwerkbelange BNetEx zu empfehlen. Funktioniert und hat Beispiele dabei.

mfG
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm

beanage.johannes

BeitragMi, Jul 22, 2009 14:11
Antworten mit Zitat
Benutzer-Profile anzeigen
geht das nicht auch ohne dem netzwerk modul?
würde es lieber phne machen.

danke

Smily

BeitragMi, Jul 22, 2009 14:20
Antworten mit Zitat
Benutzer-Profile anzeigen
wieso?
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org

beanage.johannes

BeitragMi, Jul 22, 2009 16:27
Antworten mit Zitat
Benutzer-Profile anzeigen
spielt das eine rolle? Wink
will es halt ohne machen

Holzchopf

Meisterpacker

BeitragMi, Jul 22, 2009 16:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Nur insofern, dass es ohne Modul halt nicht klappt Rolling Eyes
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm

hazumu-kun

BeitragMi, Jul 22, 2009 16:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Wieso krieg ich es dann mit folgenden Test Code nach 5 minuten hin?
Da hatte ich seit 12 Stunden BlitzMAX (BlitzBasic erfahrung).

BlitzMax: [AUSKLAPPEN]

SuperStrict

' ## Imports
Framework BRL.Blitz

Import BRL.Socket
Import BRL.SocketStream
Import BRL.StandardIO
Import BRL.Timer
'****


' ## Variablen
Global client :TSocket
Global server :TSocket

Global netstream :TSocketStream

Global timer :TTimer

Global test$ = "Hallo Client!"

Global trynr%
Global maxtry% = 25
'****


' ## Netzwerk-Initialisierung
server= CreateTCPSocket()
BindSocket (server,80)
'****


' ## Auf Client warten
timer= CreateTimer (4)

SocketListen (server)
While Not client
Print "Warte auf Client..."
client= SocketAccept (server)
WaitTimer timer
trynr:+1
If trynr>= maxtry Then
Print "Wartezeit vorbei"
End_Prog
EndIf
Wend
Print "Client hat sich verbunden."
'****


' ## Streams bereitstellen und testen.
netstream = CreateSocketStream (client)

Print "Sende jetzt folgenden Text: "+test$
WriteLine (netstream,test$)

Print "Warte auf die Antwort..."
test$= ""
While Not test$
Print "Warte..."
test$= ReadLine(netstream)
WaitTimer timer
Wend
Print "Antwort lautet: "+test$
'****


' ## Programm beenden
End_Prog
'****


' ## Funktionen

' *> Löscht die SocketStreams und
' beendet das Programm.
Function End_Prog()
Print "Test erfolgreich beendet"
Input ("Enter zum Beenden")
CloseStream (netstream)
CloseSocket (server)
End
EndFunction
'****


Den TestClient hatte ich aus Faulheit mit BlitzPlus gemacht.

BlitzBasic: [AUSKLAPPEN]

; ## Variablen
Global server, timer, test$
;****

; ## Verbinden
Print "Verbinde mit Server..."

timer= CreateTimer (4)
While Not server
Print "Warte..."
server= OpenTCPStream ("127.0.0.1",80)
WaitTimer timer
Wend

Print "Server wurde verbunden."
;****

; ## Testdaten empfangen
Print "Testdaten werden empfangen..."
While Not ReadAvail (server)
Print "Warte..."
WaitTimer (timer)
Wend
test$= ReadLine$ (server)
Print "Folgender Text wurde empfangen: "+test$
;****

; ## Antwort senden
test$= "Hallo Server!"
Print "Sende folgende Antwort: "+test$
WriteLine server,test$
;****

; ## Programm beenden
End_Prog
;****

; ## Funktionen
; *> Schließt den TCPStream und
; beendet das Programm.
Function End_Prog()
Print "Test erfolgreich beendet."
Input("Enter zum Beenden.")
CloseTCPStream server
End
End Function
;****
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann
-> nicht omnipotent
  • Zuletzt bearbeitet von hazumu-kun am Mi, Jul 22, 2009 20:36, insgesamt einmal bearbeitet

beanage.johannes

BeitragMi, Jul 22, 2009 19:31
Antworten mit Zitat
Benutzer-Profile anzeigen
ok vielen dank^^ Very Happy

ja warum sollte es bitte ohne modul nicht gehen?^^ xD

hazumu-kun

BeitragMi, Jul 22, 2009 20:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Gerngeschehen.

Stört es das der Client aus Faulheit in BlitzBasic gecodet ist?
Wenn ja kann ich ein entsprechendes Beispiel in BMax nachreichen.
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann
-> nicht omnipotent

beanage.johannes

BeitragMi, Jul 22, 2009 21:04
Antworten mit Zitat
Benutzer-Profile anzeigen
nein stört nicht, bekomme das schon "rübergecodet"

hazumu-kun

BeitragDo, Jul 23, 2009 14:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Mal aus Langeweile den Source für den zugehörigen Beispiel Client in BMAX.

BlitzMax: [AUSKLAPPEN]

SuperStrict

' ## Imports
Framework BRL.Blitz

Import BRL.Socket
Import BRL.SocketStream
Import BRL.StandardIO
Import BRL.Timer
'****

' ## Variablen
Global client :TSocket
Global server :TSocket

Global netstream :TSocketStream

Global timer :TTimer

Global test$

Global trynr%
Global maxtry% = 25
Global Connected%
'****

' ## Netzwerk-Initialisierung
server= CreateTCPSocket()
BindSocket (server,80)
'****

' ## Mit Server verbinden
timer= CreateTimer (4)
While Not Connected
Print "Verbinde..."
Connected= ConnectSocket (server,HostIp("127.0.0.1"),80)
WaitTimer (timer)
trynr:+1
If trynr>= maxtry Then
Print "Wartezeit vorbei!"
End_Prog
EndIf
Wend
'****

' ## Streams bereitstellen und testen.
netstream = CreateSocketStream (server)
Print "Server verbunden!"
Print "Warte auf Testnachricht..."
While Not test$
Print "Warte..."
test$= ReadLine$ (netstream)
WaitTimer (timer)
Wend
Print "Nachricht lautet: "+test$
test$= "Hallo Server!"

Print "Sende Antwort..."
WriteLine (netstream, test$)
'****

' ## Programm beenden
End_Prog
'****

' ## Funktionen

' *> Löscht die SocketStreams und
' beendet das Programm.
Function End_Prog()
Print "Test erfolgreich beendet"
Input ("Enter zum Beenden")
If netstream Then CloseStream (netstream)
End
EndFunction
'****
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann
-> nicht omnipotent

beanage.johannes

BeitragDo, Jul 23, 2009 14:38
Antworten mit Zitat
Benutzer-Profile anzeigen
thx

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group