Hilfe! Chat Programm funktioniert nicht

Übersicht BlitzBasic Allgemein

Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.

hazumu-kun

Betreff: Hilfe! Chat Programm funktioniert nicht

BeitragSo, Jan 25, 2009 20:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich will jetzt langsam mit den Netzwerk befehlen was programmieren. Und da hab ich zur Übung en Kleiner ChatProgramm das in Server und Client aufgeteilt ist geschrieben.
Aber Es funktionier nur wenn ich beide auf dem selben Computer starte. Über Internet funktioniert es nicht und es sollte eigentlich funktionieren da ich ein php Script von meiner Homepage aufrufe das mir die Net-Ip zurückgibt.

Der Server:
Code: [AUSKLAPPEN]
break$=Chr$(10)+Chr$(13)
port= 194 ;IRC-Port

CountHostIPs ("")
lanip$= DottedIP$(HostIP(1))
netip$= getip$()

Print "Erstelle Server..."
server= CreateTCPServer (port)
If Not server Then Print "Fehler beim Erstellen des Servers!" : Delay 250 : End

Print "Lan Ip ist: "+lanip$
Print "Internet Ip ist: "+netip$

While Not client
   Print "Warte auf Client... "+lanip$+" / "+netip$
   client= AcceptTCPStream (server)
   Delay 250
Wend
Print "Client verbunden!"

Print "Sende Bestaetigung..."
WriteLine client,"/ok"

win=CreateWindow ("Server",50,50,300,200,0,33)
sendfield= CreateTextField (5,5,235,20,win)
sendbutt= CreateButton ("Senden",245,5,50,20,win)
getarea= CreateTextArea (5,30,290,165,win)

api_SetForegroundWindow (QueryObject(Win,1))

connected=1
While Not KeyHit(1)
   If connected Then
      If ReadAvail(client) Then
         client_inp$= ReadLine$(client)
         If client_inp$="/exit" Then
            AddTextAreaText getarea,"-- Client wurde beendet!-- "
            CloseTCPStream client
            connected=0
         ElseIf client_inp<>""
            AddTextAreaText getarea,"Client: "+client_inp$+break$
            WriteLine client,"/ok"
         EndIf
      EndIf
      
      Select WaitEvent (50)
         Case $803
            End
         Case $401
            Select EventSource()
               Case sendbutt
                  client_out$= TextFieldText$ (sendfield)
                  AddTextAreaText getarea,"Server: "+client_out$+break$
                  SetGadgetText sendfield,""
                  WriteLine client,client_out$
                  While True
                     If ReadAvail(client) Then
                        client_inp$=ReadLine$ (client)
                        If client_inp$="/ok" Then
                           Exit
                        Else
                           RuntimeError "Protokoll Fehler!"
                        EndIf
                     Else
                        Delay 100
                        timeout= timeout+1
                     EndIf
                     If timeout=20 Then RuntimeError "Keine Antwort vom Client!"
                  Wend
            End Select
      End Select
   Else
      Notify "Verbindung beendet."
      End
   EndIf
Wend

Function getip$()
   tcp=OpenTCPStream("vikenemesh.bplaced.net",80)
   If Not tcp Then
      Return 0
   Else
      WriteLine tcp,"GET http://vikenemesh.bplaced.net/remotescripts/get_ip.php HTTP/1.0"
      WriteLine tcp,Chr$(10)
      If Eof(tcp) Then
         Return 0
      Else
         check= Instr(ReadLine$(tcp),"200")
         If check<>0 Then
            Repeat
               inp$=ReadLine$ (tcp)
            Until Instr (inp$,"<ip>")
            inp$=Replace$ (inp$,"<ip>","")
            inp$=Replace$ (inp$,"</ip>","")
            Return inp$
         Else
            Return 0
         EndIf
      EndIf
   EndIf
End Function


Der Client:
Code: [AUSKLAPPEN]
break$=Chr$(10)+Chr$(13)

port= 194 ;IRC-Port

server_ip$=Input$("Server IP eingeben: ")

Print "Verbinde..."
server= OpenTCPStream (server_ip$,port)
If Not server Then Print "Verbindung konnte nicht hergestellt werden..." : Delay 250 : End

Print "Verbindung hergestellt."
Print "Warte auf Bestaetigung..."
While Not checked
   If ReadLine$(server)="/ok" Then checked=1
Wend
Print "Bereit zum chatten!"

win=CreateWindow ("Client - Verbunden mit "+server_ip$,50,50,300,200,0,33)
sendfield= CreateTextField (5,5,235,20,win)
sendbutt= CreateButton ("Senden",245,5,50,20,win)
getarea= CreateTextArea (5,30,290,165,win)

api_SetForegroundWindow (QueryObject(Win,1))

connected=1
While Not KeyHit(1)
   If connected Then
      If ReadAvail(server) Then
         server_inp$= ReadLine$(server)
         If server_inp$="/exit" Then
            AddTextAreaText getarea,"-- Server wurde beendet!-- "
            CloseTCPStream server
            connected=0
         ElseIf server_inp<>""
            AddTextAreaText getarea,"Server: "+server_inp$+break$
            WriteLine server,"/ok"
         EndIf
      EndIf
      
      Select WaitEvent (50)
         Case $803
            End
         Case $401
            Select EventSource()
               Case sendbutt
                  server_out$= TextFieldText$ (sendfield)
                  AddTextAreaText getarea,"Client: "+server_out$+break$
                  SetGadgetText sendfield,""
                  WriteLine server,server_out$
                  While True
                     If ReadAvail(server) Then
                        server_inp$=ReadLine$ (server)
                        If server_inp$="/ok" Then
                           Exit
                        Else
                           RuntimeError "Protokoll Fehler!"
                        EndIf
                     Else
                        Delay 100
                        timeout= timeout+1
                     EndIf
                     If timeout=20 Then RuntimeError "Keine Antwort vom Server!"
                  Wend
            End Select
      End Select
      
   Else
      Notify "Verbindung beendet."
      End
   EndIf
Wend
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

Pummelie

BeitragSo, Jan 25, 2009 20:49
Antworten mit Zitat
Benutzer-Profile anzeigen
jetz mal ohne den code anzugucken, sind firewall von PC/router richtig eingestellt?
It's done when it's done.

hazumu-kun

BeitragSo, Jan 25, 2009 20:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Firewall gibt das Programm frei.
Und der irc port(194) ist bei mir frei sonst würde mIRC nicht funktionieren.
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

hazumu-kun

BeitragSo, Jan 25, 2009 21:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Will keiner helfen?
* push *
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

Der Eisvogel

BeitragSo, Jan 25, 2009 21:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Push ist verboten, und wenn keinem was einfällt, dann heißt es nicht, dass niemand helfen will, sondern, dass einfach im Moment niemand was weiß.
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D
Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB
Projekte: Window-Crasher
Ich liebe es mit der WinAPI zu spielen.

Starwar

BeitragSo, Jan 25, 2009 21:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab dir doch schon meine Version geschickt. Guck dir das doch mal an...
EDIT zum untern Post von Viken_Emesh um hier nicht alles zuzumüllen:
Gestern der Dateitransfer. Aber du bekommst ihn gerne nochmal Very Happy
  • Zuletzt bearbeitet von Starwar am So, Jan 25, 2009 21:43, insgesamt einmal bearbeitet

hazumu-kun

BeitragSo, Jan 25, 2009 21:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Wohin geschickt? email?

Ahh danke. Hilft mir aber immer noch nicht so richtig.

Hab jetz mal versucht ein extrem simples Beispiel zu testen. Klappt auch nicht übers inet! Woran liegts das es im LAN funktioniert über's Internet aber nicht.
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

BladeRunner

Moderator

BeitragSo, Jan 25, 2009 22:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Ping verhält sich zu Pong wie


*push*

zu

~GESCHLOSSEN~
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group