TCP Chat problem

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

mabox

Betreff: TCP Chat problem

BeitragMi, Apr 09, 2008 21:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo, ich hab angefangen einen kleinen TCP Chat zu Proggn.
Leider kommt nur die erste Nachricht vom Server beim Client an und die erste Nachricht vom Client beim Server. Was mache ich falsch?

ServerCode: [AUSKLAPPEN]
server=CreateTCPServer(8080)

Repeat
   stream=AcceptTCPStream(server)
   If stream Then
      l$ = ReadLine$(stream)
      Print l$
      i$ = Input(">")
      WriteLine stream, i$
   EndIf
   
Until i$ = "ende"
End


ClientCode: [AUSKLAPPEN]
server1$ = "***.***.***.***"
stream1 = OpenTCPStream(server1$, 8080)

WriteLine stream1, "hallo"
Repeat
   If stream1 Then
      l1$ = ReadLine$(stream1)
      Print l1$
   EndIf
   
   i$ = Input(">")
   WriteLine stream1, i1$
Until i1$ = "ende"
End
Fujitsu-Siemens Laptop, 2Ghz Intel Core2Duo Prozessor, 2GB Ram, 120GB Festplatte, ATI Mobility Radeon X1400, Windows Vista Ultimate
www.mausoft.de.tl
Dönerfresser Homepage

mabox

BeitragDo, Apr 10, 2008 21:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo nochmal, Ich will nicht mit Doppelposts stören, und ich mache das auch nur weil ich fast am verzweifeln bin und den Chat einfach nicht hinbekomme.
Ich hatte im BlitzChat gefragt, und dort wurde mir gesagt, dass "acceptstream" nur einmal funktioniert und ich solle die Befehle "Readavail" und "Eof" benützen. Ich habe jetzt viel herumprobiert, aber ich bekomms einfach nicht hin. Mein Hauptproblem ist, dass ich nicht ganz verstehe wie ich "acceptstream" in meinem Fall einsetzten muss. Die OH hab ich gelesen, aber daraus werde ich irgendwie nicht schlau Crying or Very sad
kannst du mir das so erklären das es der dümmste mensch den du kennst (mit halbiertem IQ) versteht?

~EDIT: ich hab den Server jetzt etwas weiter geschafft. Auf jeden Fall kann ich jetzt Nachrichten vom Server an den Client schicken. Vom Client kommt auch was an, aber komischerweise nur eine leere Antwort.
was ist da noch falsch?
hier mein aktueller ServerCode: https://www.blitzforum.de/upload/code.php?show=862

Und noch ne Frage, Bis jetzt kann man nur eine Nachricht schicken wenn der andere zurückgeschrieben hat. was muss ich anders machen, dass man mehrere Nachrichten nacheinander schreiben kann?

Jan_

Ehemaliger Admin

BeitragFr, Apr 11, 2008 11:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Hast du BlitzPlus oder Blitz3d?
between angels and insects

mabox

BeitragFr, Apr 11, 2008 11:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Blitz3D
Also ich habs jetzt geschafft, dassman sich gegenseitig Nachrichten schreiben kann, aber halt immer nur abwechselnd. was muss ich ändern, damit man immer Nachrichten schreiben kann?
Fujitsu-Siemens Laptop, 2Ghz Intel Core2Duo Prozessor, 2GB Ram, 120GB Festplatte, ATI Mobility Radeon X1400, Windows Vista Ultimate
www.mausoft.de.tl
Dönerfresser Homepage

Jan_

Ehemaliger Admin

BeitragFr, Apr 11, 2008 11:43
Antworten mit Zitat
Benutzer-Profile anzeigen
1. das input muss Raus.
Anregungen dazu hier:
https://www.blitzforum.de/foru...ight=input

2. Der server soll garnicht Chaten können!
nur die Cliebnts untereinander.
Jeder client hat einen eigenen Stream zum server, --> Types für die Clients.
Der server ist nur zum verteilen da.
Code: [AUSKLAPPEN]
server=CreateTCPServer(8080)

  Print "isch bin dor Sörver"
   ;Stop
Type Clients
   Field IP
   Field Stream
End Type

Repeat

   stream=AcceptTCPStream(server)
   If stream <> 0 Then
     Local client.clients = New clients
     client\ip=TCPStreamIP(stream)
     client\stream=stream
   ;Stop
   EndIf
   For client.clients = Each clients
         While ReadAvail(client\stream) <> 0
            l$ = ReadLine$(client\stream)
            Print client\ip+">"+l$
         Local empfaenger.clients
         For empfaenger.clients = Each clients
               WriteLine empfaenger\stream, l$
         Next
         Wend
      Delay 10
   Next
Until i$="ende"
End


Du hattest statt:
WriteLine stream1, i$
WriteLine stream1, i1$ stehen
einfach die 1 weg, und es kommt auch ne Nachricht an.
Code: [AUSKLAPPEN]
server1$ = "127.0.0.1"
stream1 = OpenTCPStream(server1$, 8080)

Print "Icke bin der Client"

WriteLine stream1, "hallo"
Repeat
   If stream1 Then
      l1$ = ReadLine$(stream1)
      Print l1$
   EndIf
   
   i$ = Input(">")
   WriteLine stream1, i$
   Delay 10
Until i1$ = "ende"
End

between angels and insects

mabox

BeitragFr, Apr 11, 2008 17:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielen Dank schonmal!

zu 2.so müsste ich immer einen anderen PC mit dem Server drauf laufen lassen oder?, das wollte ich vermeiden.

Das mit i$ und der 1 hatte ich schon rausgefunden, deshalb stand auch in meinem letzten Post das ichs geschafft hab.

zu 1. Ich hab mir schonmal selber ne Inputroutine programmiert welche ich ohnehin einbauen wollte, aber das Problem ist, dass man vom Server ja nur antworten kann wenn etwas ankommt oder? -Deshalb macht man das ja eigentlich auch mit einem Server und mehreren Clients...

Bis jetzt funktioniert der Chat nur über LAN und nicht übers Internet, liegt das auch daran, das ich nicht mehrere Clients hab?
Fujitsu-Siemens Laptop, 2Ghz Intel Core2Duo Prozessor, 2GB Ram, 120GB Festplatte, ATI Mobility Radeon X1400, Windows Vista Ultimate
www.mausoft.de.tl
Dönerfresser Homepage

Tankbuster

BeitragFr, Apr 11, 2008 19:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Bis jetzt funktioniert der Chat nur über LAN und nicht übers Internet, liegt das auch daran, das ich nicht mehrere Clients hab?


Es liegt daran, dass du an deinem Router den Port nicht freigegeben hast, denke ich Wink
Twitter
Download Jewel Snake!
Windows|Android

mabox

BeitragFr, Apr 11, 2008 20:16
Antworten mit Zitat
Benutzer-Profile anzeigen
nein ich habe bei Client und Server den Port am Router freigegeben
Fujitsu-Siemens Laptop, 2Ghz Intel Core2Duo Prozessor, 2GB Ram, 120GB Festplatte, ATI Mobility Radeon X1400, Windows Vista Ultimate
www.mausoft.de.tl
Dönerfresser Homepage

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group