welchen TCP stream benutzen?

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

FreetimeCoder

Betreff: welchen TCP stream benutzen?

BeitragSo, Jun 24, 2007 13:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Heyho,

ich habe folgendes Problem:

Ich habe ein Serverprogramm:
Code: [AUSKLAPPEN]
Type Player
   Field TCP_Stream
   Field Name$
End Type
AppTitle "Server"

Global tcp_Stream=CreateTCPServer(80)
Print "Versuche Verbindung aufzubauen"

If tcp_Stream=0
   RuntimeError "Server konnte nicht gestartet werden"
EndIf
Print "Verbindung steht"

While Not KeyHit(1)
   InputStream=AcceptTCPStream(tcp_Stream)
   If InputStream
      Request$=ReadString(InputStream)
      Select Request
      Case "Request_Connect"
         Name$=ReadString(InputStream)
         Print Request
         Print Name
         Found=False
         For p.Player=Each Player
            If p\Name=Name
               Found=True
               Exit
            EndIf
         Next
         If Found=True
            WriteString InputStream,"Refused"
         Else
            SendtoAll(Name+" ist beigetreten")
            WriteString InputStream,"Accepted"
            P.Player=New Player
            P\Name=Name
            P\TCP_Stream=InputStream
         EndIf
      End Select
   EndIf
Wend

CloseTCPServer(tcp_Stream)
End

Function SendtoAll(msg$)
   For p.Player=Each Player
      Print "sende an "+P\Name
      Print "mit "+P\TCP_Stream
      WriteString P\TCP_Stream,"Request_MSG"
      WriteString P\TCP_Stream,msg
   Next
End Function


und folgendes Clientprogramm:
Code: [AUSKLAPPEN]
AppTitle "Client"

Global Name$=Input("Dein Name>")
If Name="" Then Name=Str(Rand(100))+Str(Rand(100))+Str(Rand(100))
Print "versuche Verbindung aufzubauen"
Global tcp_Stream=OpenTCPStream("192.168.2.22",80);Ja ich weiß, dass das Lokal ist
If tcp_Stream=0
   RuntimeError "Server konnte nicht erreicht werden"
EndIf
Print "Verbindung steht"

WriteString tcp_Stream,"Request_Connect"
WriteString tcp_Stream,Name

While Not KeyHit(1)
   Request$=ReadString(tcp_Stream)
   If Request<>""
      Print Request
   EndIf
Wend
CloseTCPStream(tcp_Stream)
End


Das Problem dabei ist, das ich nicht weiß, was ich machen soll, wenn der Server einem Client was schicken soll... Ich habe folgendes ausprobiert:

Wenn sich ein Client anmeldet:
Code: [AUSKLAPPEN]
InputStream=AcceptTCPStream(tcp_Stream)
   If InputStream


Code: [AUSKLAPPEN]
Name$=ReadString(InputStream)
WriteString InputStream,"Accepted"
P.Player=New Player
P\Name=Name
P\TCP_Stream=InputStream


Ich habe mir gedacht, das der Stream, welcher mit AcceptTCPStream ermittelt wird ab dem Connecten gültig ist. Doch das scheint nicht der Fall zu sein, denn:
Code: [AUSKLAPPEN]
Function SendtoAll(msg$)
   For p.Player=Each Player
      Print "sende an "+P\Name
      Print "mit "+P\TCP_Stream
      WriteString P\TCP_Stream,"Request_MSG"
      WriteString P\TCP_Stream,msg
   Next
End Function


Bewirkt beim Client nichts, obwohl doch eigentlich etwas gesendet werden müsste? Auf jedenfall exitstiert der Stream zur Zeit des Sendens, sonst würde bei "WriteString" ein Fehler kommen.

Bin ratlos.... Sad
Möglicherweise habe ich totalen Blödsinn gecodet.
Please Help!

MfG
FTC
"Wir haben keine Chance, aber wir werden sie nutzen!"
Projekte:
Dexterity Ball (100%)
Aquatic Atmosfear (22 % ca 4700 Zeilen) eingefrohren mangels OOP Fähigkeiten von Blitz
(ehemals Uboot)
PC: Intel D 3 GHz | NVidiaGforce 6700 256 Mb | 1024 Mb DDR RAM 400 Mhz | 2x160 GB S-ATA

Tankbuster

BeitragSo, Jun 24, 2007 13:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielleicht liegts am Port! 80 würde ich nie verwenden, da er vom IE und FF genutzt wird. Versuch mal mit 8000 oder 8080 oder irgendwas anderem!
Twitter
Download Jewel Snake!
Windows|Android

FreetimeCoder

BeitragSo, Jun 24, 2007 13:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Yeah! Thx! Very Happy Very Happy Very Happy

Daran lags xD
"Wir haben keine Chance, aber wir werden sie nutzen!"
Projekte:
Dexterity Ball (100%)
Aquatic Atmosfear (22 % ca 4700 Zeilen) eingefrohren mangels OOP Fähigkeiten von Blitz
(ehemals Uboot)
PC: Intel D 3 GHz | NVidiaGforce 6700 256 Mb | 1024 Mb DDR RAM 400 Mhz | 2x160 GB S-ATA

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group