Probleme mit meinem Chat?
Übersicht

bruce85Betreff: Probleme mit meinem Chat? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
ich bin gerade dabei einen Chat zu schreiben, leider bekommt der Server oder der Client nix, wenn ich etwas abschicke. Ich habe 2 BB Dateien, also einmal Server.bb und einmal Client.bb. Jetzt wollte ich mal wissen, ob es überhaupt so gehen kann die 2 Dateien getrennt zu benutzen? Eigentlich müsste es ja funktionieren, also der Server wird positiv gestartet und der Client wird positiv gestartet, nur wenn ich eine Nachricht schreibe, dann kommt es nie an, zum Server oder Client. Ich habe es erst local getestet, also mit der IP 127.0.0.1 um es erstmal zu testen. Wenn es eigentlich so gehen müsste, dann poste ich mal den Quellcode. Danke euch schonmal für die hilfe. MfG Andreas |
||
AMD Athlon(tm) II X2 250, 8 GB DDR, MSI MSI 770-C45, GeForce GTS 250 |
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Natürlich geht das! Wenn du aber mit UDp arbeitest, musst du die IP als Integer eingeben! | ||
Twitter
Download Jewel Snake! Windows|Android |
![]() |
The_Nici |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bau mal in den Server ein das die Nachrichten, die angekommen sind angezeigt werden, dann weisst du ob es am Client ders verschickt oder am Server ders weiterleitet liegt. | ||
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
So schlau müsste selbst mein 6 jähriger (nichtexistierender) Bruder sein! | ||
Twitter
Download Jewel Snake! Windows|Android |
bruce85 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke euch.
Ich arbeite gerade mit TCP Protokol. Ich habe alles richtig definiert, aber es kommt nie an, es zeigt auch kein Fehler an oder so. Hier mal der Code: Server.bb Code: [AUSKLAPPEN] Graphics 640,480,16,2
SetBuffer BackBuffer() AppTitle "Server" Global schrift1 = LoadFont("Arial",16,0,0,0) Global schrift2 = LoadFont("Arial",16,0,1,0) Global i=30 Global ClientStream Global ClientNick$="bruce85" Global Eingabe$ Type texte Field tex$ Field tex_x Field tex_y Field schrift Field tex_red Field tex_green Field tex_blue End Type Global Server = CreateTCPServer(8000) If Server <> 0 Then t.texte = New texte t\tex$ = "<" + CurrentTime() + "> " + "Server wurde erfolgreich gestartet." t\tex_x = 30 t\tex_y = i i = i + 20 t\schrift = schrift2 t\tex_red = 0 : t\tex_green = 100 : t\tex_blue = 100 Else t.texte = New texte t\tex$ = "Fehler beim erstellen des Servers." t\tex_x = 30 t\tex_y = i i = i + 20 t\schrift = schrift1 t\tex_red = 100 : t\tex_green = 0 : t\tex_blue = 0 EndIf Type client Field stream Field ip_adresse$ Field port_adresse% Field name$ End Type ClsColor 127,127,127 Repeat Cls ClientStream = AcceptTCPStream(Server) If ClientStream Then c.client = New client c\stream = ClientStream c\ip_adresse$ = DottedIP(TCPStreamIP(ClientStream)) c\port_adresse% = TCPStreamPort(ClientStream) EndIf ;Wenn der Client etwas abgeschickt hat, dann ausführen For c.client = Each client While ReadAvail(c\stream) action = ReadString(c\stream) Select action Case 1 ClientNick$ = ReadString(c\stream) c\name$ = ClientNick$ t.texte = New texte t\tex$ = c\name$ + " betritt den Chat." t\tex_x = 30 t\tex_y = i i = i + 20 t\schrift = schrift1 t\tex_red = 0 : t\tex_green = 100 : t\tex_blue = 0 Case 2 Message$ = ReadString(c\stream) c\name$ = ClientNick$ t.texte = New texte t\tex$ = c\name$ + ": " + Message$ t\tex_x = 30 t\tex_y = i i = i + 20 t\schrift = schrift1 t\tex_red = 0 : t\tex_green = 100 : t\tex_blue = 0 End Select Wend Next For t.texte = Each texte SetFont t\schrift Color t\tex_red,t\tex_green,t\tex_blue Text t\tex_x,t\tex_y,t\tex$ Next InputFunktion() If KeyDown(28) And KeyHit(28) Then Message$ = Eingabe$ t.texte = New texte t\tex$ = ClientNick$ + ": " + Message$ t\tex_x = 30 t\tex_y = i i = i + 20 t\schrift = schrift1 t\tex_red = 0 : t\tex_green = 0 : t\tex_blue = 128 For c.client = Each client WriteByte c\stream,2 WriteString c\stream,Message$ Next Message$="" EndIf Flip Until KeyHit(1) End Function InputFunktion() b$ = GetKey() If b > 0 Then If Not b = 8 Then If Not b = 13 Then Eingabe$ = Eingabe$ + Chr$(b$) EndIf EndIf EndIf If b = 8 Then Eingabe$ = Mid(Eingabe$,1,Len(Eingabe$)-1) EndIf Text 30,400,Eingabe$ End Function Client.bb Code: [AUSKLAPPEN] Graphics 640,480,16,2
SetBuffer BackBuffer() AppTitle "Client" Global schrift1 = LoadFont("Arial",16,0,0,0) Global schrift2 = LoadFont("Arial",16,0,1,0) Global i=30 Global ClientNick$ = "bruce85" Global Stream Global Eingabe$ Type texte Field tex$ Field tex_x Field tex_y Field schrift Field tex_red Field tex_green Field tex_blue End Type Stream = OpenTCPStream("127.0.0.1",8000) If Stream <> 0 Then t.texte = New texte t\tex$ = "<" + CurrentTime() + "> " + "Erfolgreich zum Server verbunden." t\tex_x = 30 t\tex_y = i i = i + 20 t\schrift = schrift2 t\tex_red = 0 : t\tex_green = 100 : t\tex_blue = 100 ;beim server anmelden WriteByte Stream,1 WriteString Stream,ClientNick$ Else t.texte = New texte t\tex$ = "Fehler beim verbinden zum Server." t\tex_x = 30 t\tex_y = i i = i + 20 t\schrift = schrift1 t\tex_red = 100 : t\tex_green = 0 : t\tex_blue = 0 EndIf ClsColor 127,127,127 Repeat Cls ;Wenn der Server etwas abgeschickt hat, dann ausführen While ReadAvail(Stream) action = ReadByte(Stream) Select action Case 2 Message$ = ReadString(Stream) t.texte = New texte t\tex$ = ServerNick$ + ": " + Message$ t\tex_x = 30 t\tex_y = i i = i + 20 t\schrift = schrift1 t\tex_red = 0 : t\tex_green = 100 : t\tex_blue = 0 End Select Wend If Not Eingabe = "" Then If KeyHit(28) And KeyDown(28) Then Message$ = Eingabe$ t.texte = New texte t\tex$ = ClientNick$ + ": " + Message$ t\tex_x = 30 t\tex_y = i i = i + 20 t\schrift = schrift1 t\tex_red = 0 : t\tex_green = 0 : t\tex_blue = 128 WriteByte Stream,2 WriteString Stream,Message$ Eingabe$="" EndIf EndIf For t.texte = Each texte SetFont t\schrift Color t\tex_red,t\tex_green,t\tex_blue Text t\tex_x,t\tex_y,t\tex$ Next InputFunktion() Flip Until KeyHit(1) End Function InputFunktion() b$ = GetKey() If b > 0 Then If Not b = 8 Then If Not b = 13 Then Eingabe$ = Eingabe$ + Chr$(b$) EndIf EndIf EndIf If b = 8 Then Eingabe$ = Mid(Eingabe$,1,Len(Eingabe$)-1) EndIf Text 30,400,Eingabe$ End Function Hab ich vieleicht etwas falsch gemacht? MfG Andreas |
||
AMD Athlon(tm) II X2 250, 8 GB DDR, MSI MSI 770-C45, GeForce GTS 250 |
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
ja
action ist ein integer, soll aber einen string lesen. (siehe server code) |
||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
bruce85 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke dir StepTiger, ich habe das so machen müssen:
Code: [AUSKLAPPEN] action$ = ReadByte(Stream)
also die Bytes lesen, jetzt geht das. EDIT: Ich hab noch ein kleines problem und zwar, wenn ich jetzt zu testen auf 1 Rechner einmal den Server Öffne und 2 mal den Clienten und beim ersten Client etwas abschicke, dann bekommt es nur der Server, der andere Client bekommt die Nachricht irgendwie nicht. Wenn ich mit dem server etwas abschicke, dann bekommen ja auch alle Clienten die Nachricht. Woran kann das liegen? Ich tu ja auch vorher alle Clienten abfragen mit der FOR NEXT Schleife, bevor die Nachricht abgeschickt wird. Vielen Dank. MfG Andreas |
||
AMD Athlon(tm) II X2 250, 8 GB DDR, MSI MSI 770-C45, GeForce GTS 250 |
Yogu |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Mach es doch einfach so, dass die Clients erstmal die Daten an den Server schicken und dann der Server alle Nachrichten, die er empfängt wieder an die Clients schickt. Der Server muss noch einen Anhang zu den Daten anhängen, von wem die Daten kommen, dann können die Clients überprüfen, ob die Nachricht von ihnen ist. | ||
bruce85 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke @Yogu.
Ich habe das ja so gemacht, also der Client schickt eine Nachricht zum Server, dann fragt der Server alle Clients ab und schickt sie dann weiter. Aber irgendwie will das nicht gehen. MfG Andreas |
||
AMD Athlon(tm) II X2 250, 8 GB DDR, MSI MSI 770-C45, GeForce GTS 250 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group