Tcp Chat Frage

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

FWeinb

ehemals "ich"

Betreff: Tcp Chat Frage

BeitragDi, Mai 22, 2007 21:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo ich Vesuche mich jetzt mal an einem Chat in TCP nun habe ich schon gleich die ersten Problem also der Server ist soweit schon:

Code: [AUSKLAPPEN]

Type Member
    Field Name
    Field id
End Type

ChatServer = CreateTCPServer (11345)

If ChatServer <> 0 Then
    Print "Server gestartet"
 Else
    Print "Server nicht Gesartet"
EndIf

timerwait = CreateTimer (2)

While Not KeyHit (1)
    user = AcceptTCPStream (ChatServer)
   
    If user Then
       
        For u.Member = Each Member
           
            If user = u\id Then
                nochfrei = False
             Else
               If nochfrei<> False Then
                nochfrei = True
               EndIf
            EndIf
           
            If nochFrei = True Then
                Print user
                u.Member = New Member
                u\name = ReadString$ (user)
                u\id = user
                WaitTimer Timerwait
            EndIf

         Next       
   
        EndIf
       
    Wend
   



Und mein Clinte hatt es soweit gebracht:

Code: [AUSKLAPPEN]

Graphics 200,200,16,2

Global Input_Name$     


user=Input("NAME:")
ChatClint=OpenTCPStream("127.0.0.1",11345)

If ChatClint<>0 Then
   Print "Client erfolgreich verbunden"
Else
   Print "Konnte keine Verbindung herstellen"
   WaitKey
   End
EndIf

WriteString ChatClint,user
While Not KeyHit(1)
  Cls
  msg=GetInput$(10,10,"Send","/all","",50)



 Flip
Wend
;Ich lass hier mal die GetInput Funktion Wech ^^


Also nun mein Frage wie bekomme ich es jetzt hin das ich ein Nachricht schreiben kann und alle die nachricht (mit meinem Namen) Sehen ?

Danke im Vorraus

mfg

ich
"Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein." Albert Einstein (1879-1955)
"If you live each day as if it was your last, someday you'll most certainly be right." Steve Jobs

Tankbuster

BeitragDi, Mai 22, 2007 21:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Du sendest die, die kommt beim server an, und wird an alle zurückgeleitet!
Also die Nachricht sollte iwi so aussehen
Zitat:
"NAME Nachricht"

Dann lesen die anderen Clients den Name aus, machen einen ":" dahinter, und lesen dann die Nachricht...
Twitter
Download Jewel Snake!
Windows|Android
 

FWeinb

ehemals "ich"

BeitragDi, Mai 22, 2007 21:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja die Logik hinter dem Ganzen habe ich auch verstanden aber ich weiß eben nicht wie ich das umsetzen kann/muss
"Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein." Albert Einstein (1879-1955)
"If you live each day as if it was your last, someday you'll most certainly be right." Steve Jobs

Tankbuster

BeitragDi, Mai 22, 2007 21:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
stream=OPENTCPSTREAM(IP,Port)

WRITESTRING stream,"Dieser Text wird übermittelt..."

=D
Twitter
Download Jewel Snake!
Windows|Android

The_Nici

BeitragMi, Mai 23, 2007 13:53
Antworten mit Zitat
Benutzer-Profile anzeigen
deinname$=Input("Name: ")

Writestring stream, deinname$+": "+msg$


Schwierig?

EDIT: BLAAAH bin ich blöd

1. Eingaberoutine
2. In Stream schreiben
3. Senden
4. Auslesen
5. Anzeigen

www.blitzbase.de
 

FWeinb

ehemals "ich"

BeitragMi, Mai 23, 2007 20:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Crying or Very sad Crying or Very sad

Ja ich weiß wie ich das mach soll aber wenn ich das so mache

(Clinte)
Code: [AUSKLAPPEN]

Graphics 200,200,16,2

Global Input_Name$     


user$=Input("NAME:")
ChatClint=OpenTCPStream("127.0.0.1",11345)

If ChatClint<>0 Then
   Print "Client erfolgreich verbunden"
Else
   Print "Konnte keine Verbindung herstellen"
   WaitKey
   End
EndIf

WriteString ChatClint,user

While Not KeyHit(1)
  Cls
  msg$=GetInput$(10,10,"Send","/all","",50)
  msg=user$+":"+msg$

  WriteString ChatClint,msg$ 
  antw=ReadString$(ChatClint)
  Print antw

 Flip
Wend

Dann weiß ich nicht wie ich es machen soll das der Server weiß das er keinen Benutzer mehr aufnehmen soll sodern die Narchicht weiter leite

Danke für Hilfe
"Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein." Albert Einstein (1879-1955)
"If you live each day as if it was your last, someday you'll most certainly be right." Steve Jobs

Tankbuster

BeitragMi, Mai 23, 2007 20:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann mach halt, wenn du dich einloggst, sendet er die Nachricht
"Login Name"!
Das selbe hatten wir schonmal in nem Thread von mas96 (oder was für ne Zahl dahinter steht)
Twitter
Download Jewel Snake!
Windows|Android
 

FWeinb

ehemals "ich"

BeitragMi, Mai 23, 2007 21:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Gut bin jetzt weiter aber der meint bei mir jetzt wenn ich was sende das der Stream nicht existiret (Mit Debugger)

Code: [AUSKLAPPEN]


Type Member
    Field Name
    Field id
End Type

ChatServer = CreateTCPServer (11345)

If ChatServer <> 0 Then
    Print "Server gestartet"
 Else
    Print "Server nicht Gesartet"
EndIf

While Not KeyHit (1)
    user = AcceptTCPStream (ChatServer)
   
    If user Then
       
        If ReadAvail (user) Then
            msg$ = ReadString$ (user)
        EndIf
       
     Else
       
        For u.Member = Each Member
           
            If ReadAvail (u\id) Then
                msg$ = ReadLine$ (u\id)
                Stream = u\id
            EndIf
           
        Next
    EndIf
       
        If msg$ <> "" Then
           
            Select msg$
             
             Case "neu"
                clint_name$=ReadString (user)
                u.Member = New Member
                u\Name = Clint_name$
                u\id = user
                Print Clint_name$+" Hat den Chat Betreten"
             Case "msg"
                Clint_Name$ = ReadString (Stream)
                Clint_msg$ = ReadString (Stream)
                Print Clint_name$ + ": " + Clint_msg$
               
                For u.Member = Each Member
                   
                    If u\id <> Stream Then
                        WriteLine u\id,"msg"
                        WriteLine u\id,Clint_name$
                        WriteLine u\id,Clint_msg$
                    EndIf
                   
                Next
               
            End Select
           
        EndIf
       

  If KeyHit(57) Then
      While KeyHit(57)
      Wend
       msg$=""
        msg$=Input(">")
        WriteString ChatClint,"msg"
        WriteString ChatClint,"Server"
        WriteString ChatClint,msg$
        Print "Server: "+msg$
   EndIf


    Wend
   


Clinte
Code: [AUSKLAPPEN]

Graphics 200 ,200,16,2

Global Input_Name$

user$ = Input ("NAME:")
ChatClint = OpenTCPStream ("127.0.0.1",11345)

If ChatClint <> 0 Then
    Print "Client erfolgreich verbunden"
 Else
    Print "Konnte keine Verbindung herstellen"
    WaitKey
    End
EndIf

WriteString ChatClint,"neu"
WriteString ChatClint,user$

While Not KeyHit (1)
    Cls
    msg$=""
    If ReadAvail (ChatClint) Then
        server_msg$ = ReadString$ (ChatClint)
       
        Select server_msg$
         Case "msg"
            Server_Name$ = ReadString$ (ChatClint)
            Server_msg$ = ReadString$ (ChatClint)
            Print Server_Name$ + ": " + Server_msg
        End Select
       
    EndIf
   
     
  If KeyDown(57) Then
    While KeyDown(57)
    Wend
   msg$ = Input$("> ")
 WriteLine strmClient, "2"
 WriteLine strmClient, user$
 WriteLine strmClient, msg$
 EndIf


    Flip
Wend


Danke im Vorraus

mfg

ich
"Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein." Albert Einstein (1879-1955)
"If you live each day as if it was your last, someday you'll most certainly be right." Steve Jobs

Tankbuster

BeitragMi, Mai 23, 2007 21:58
Antworten mit Zitat
Benutzer-Profile anzeigen
An welcher stelle kommt das denn ??
Also ich hab Blitz in diesem Moment nicht zur Hand, und deshalb kann ich net selber testen! Und ich hab auch keinen Bock den ganzen Code zu lesen ... sry -.-
Twitter
Download Jewel Snake!
Windows|Android
 

FWeinb

ehemals "ich"

BeitragDo, Mai 24, 2007 18:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Es kommt an der Stelle:
Code: [AUSKLAPPEN]

  If KeyHit(57) Then
      While KeyHit(57)
      Wend
       msg$=""
        msg$=Input(">")
        WriteString ChatClint,"msg";<<<<<<<HIER
        WriteString ChatClint,"Server"
        WriteString ChatClint,msg$
        Print "Server: "+msg$
   EndIf
"Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein." Albert Einstein (1879-1955)
"If you live each day as if it was your last, someday you'll most certainly be right." Steve Jobs

Tankbuster

BeitragDo, Mai 24, 2007 19:55
Antworten mit Zitat
Benutzer-Profile anzeigen
LOL!
Du hast ChatClint mit strmClient verwechselt! Wenn du das änderst, funzt es!
Twitter
Download Jewel Snake!
Windows|Android

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group