Problem mit eigenem Radio Client

  • Einen schönen guten Tag liebe Community,

    leider muss ich euch mit folgendem Problem belästigen :P

    Also ich bin gerade dabei einen Client für meinen Radio Stream anzufertigen.Ich wollte meine DJ - Künste auch mal der Welt offenbaren. ;)
    Nun habe ich das Problem, dass das Modul/Funktion für die Statusabfrage nicht richtig funktioniert nach Aussagen von Freunden.
    Die Dyndns wird aufgelöst und dann weiterverarbeitet, der Stream an sich läuft auf Port 8000. Also soll immer nachgeschaut werden, ob etwas auf dem Port läuft (abhören).

    Klickt man einmal drauf, so gibt der den richtigen status zurück (onine) , schalte ich nun den stream ab und man klickt erneut auf Status, so erscheint auch offline.
    Lass ich dfen Stream wieder laufen, und man klickt zum dritten mal auf Status, damit normalerweise online zurück kommt. Meldet er

    "WSAEADDRINUSE 10048 " --> Address already in use

    Hmmm nun dachte ich mir dass das irgendetwas mit TCPShutdown() zu tun. Naja ich poste mal das Script, bei verbesserungsvorschlägen einfach nur melden :D . Immer offen für alles.

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Include <GuiTab.au3>
    #include <SliderConstants.au3>
    #include <StaticConstants.au3>
    #include <INet.au3>

    [/autoit] [autoit][/autoit] [autoit]

    ;~ ############################################Main GUI####################################################################################

    [/autoit] [autoit][/autoit] [autoit]

    FileInstall("C:\BackgroundZ.jpg",@TempDir & "\")
    Global $WMP_Objekt = ObjCreate ( "WMPLayer.ocx" )

    [/autoit] [autoit][/autoit] [autoit]

    $MainGUI = GUICreate("Big Daddy´s MusicBox",800,400)
    $Pic = GUICtrlCreatePic(@TempDir & "\BackgroundZ.jpg", 0, 20, 800, 400,-1,0x00100000)
    GuiCTRLSetState(-1,$GUI_DISABLE)

    [/autoit] [autoit][/autoit] [autoit]

    ;~ #############################################Tab Main########################################################################

    [/autoit] [autoit][/autoit] [autoit]

    $Tab = GUICtrlCreateTab(1,1,800,400)

    [/autoit] [autoit][/autoit] [autoit]

    $Tab_1 = GUICtrlCreateTabItem("Main")

    [/autoit] [autoit][/autoit] [autoit]

    $Start_Button = GUICtrlCreateButton("Gib mir den Beat",250,170,125,50)
    $Stop_Button = GUICtrlCreateButton("Ich brauche eine Pause",450,170,125,50)
    $Volume = GUICtrlCreateSlider(310, 260, 200, 25)

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlSetData(-1,$WMP_Objekt.settings.volume())
    $Min = GUICtrlCreateLabel("Min.",285,290)
    GUICtrlSetFont($Min,9,700)
    GUICtrlSetColor (-1,0xFFFFFF)
    GUICtrlSetFont($Min,9,700)
    $Max = GUICtrlCreateLabel("Max.",515,290)
    GUICtrlSetColor (-1,0xFFFFFF)
    GUICtrlSetFont($Max,9,700)

    [/autoit] [autoit][/autoit] [autoit]

    $Status_Button = GUICtrlCreateButton("Status",365,110,100,20)
    $Status = GUICtrlCreateLabel("-Status Unbekannt-",340,350,150,15,$SS_CENTER)
    GUICtrlSetBkColor($Status,0xFF4D00)

    [/autoit] [autoit][/autoit] [autoit]

    ;~ ##############################################Tab Chat########################################################################

    [/autoit] [autoit][/autoit] [autoit]

    $Tab_2 = GUICtrlCreateTabItem("Chat")

    [/autoit] [autoit][/autoit] [autoit]

    $Edit = GUICtrlCreateEdit("", 250, 70, 520, 250)
    $Input = GUICtrlCreateInput("", 250, 336, 401, 21)
    $Senden_Button = GUICtrlCreateButton("Senden", 673, 334, 97, 25, 0)

    [/autoit] [autoit][/autoit] [autoit]

    ;~ ###############################################Tab Option######################################################################

    [/autoit] [autoit][/autoit] [autoit]

    $Tab_3 = GUICtrlCreateTabItem("Option")
    $CoomingSoon2 = GUICtrlCreateLabel("Cooming Soon",340,200,150,15,$SS_CENTER)
    GUICtrlSetBkColor($CoomingSoon2,0xff0000)

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    ;~ ##############################################Button Abfrage##################################################################################

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $Status_Button
    Status()

    [/autoit] [autoit][/autoit] [autoit]

    Case $msg = $Volume
    $WMP_Objekt.settings.volume = GUICtrlRead($Volume)

    [/autoit] [autoit][/autoit] [autoit]

    Case $msg = $GUI_Event_CLOSE
    ExitLoop

    [/autoit] [autoit][/autoit] [autoit]

    Case $msg = $Start_Button
    Start()

    [/autoit] [autoit][/autoit] [autoit]

    Case $msg = $Stop_Button
    $WMP_Objekt.controls.stop()

    [/autoit] [autoit][/autoit] [autoit]

    Case $msg = $Senden_Button
    Chat()
    EndSelect
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    ;~ ###############################################Funktionen#################################################################################

    [/autoit] [autoit][/autoit] [autoit]

    Func Start()

    [/autoit] [autoit][/autoit] [autoit]

    $RadioURL = "http://DYNDNS"
    $WMP_Objekt.URL = $RadioURL
    $WMP_Objekt.controls.play()

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func Status()

    [/autoit] [autoit][/autoit] [autoit]

    TCPStartUp()

    [/autoit] [autoit][/autoit] [autoit]

    $DNS = TCPNameToIP("DYNDNS")

    [/autoit] [autoit][/autoit] [autoit]

    $PortListening = TCPListen($DNS_IP,8000)
    if $PortListening >= 1 then
    GUICtrlSetData($Status,"-Online-")
    GUICtrlSetBkColor($Status,0x00ff00)
    Else
    GUICtrlSetData($Status,"Offline")
    GUICtrlSetBkColor($Status,0xff0000)
    TCPShutdown()
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func Chat()
    ;IP und Port von dir
    $Ip = _GetIP()
    $Port = 3000

    [/autoit] [autoit][/autoit] [autoit]

    $Ip2 = _GetIP()
    $Port2 = 3000

    [/autoit] [autoit][/autoit] [autoit]

    TCPStartUp ()

    [/autoit] [autoit][/autoit] [autoit]

    $Server = TCPListen($Ip,$Port,1)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $Client2 = TCPConnect ($Ip2,$Port2)
    TCPSend ($Client2, GUICtrlRead($Input))
    ControlClick ("","",$Edit)
    Send("-> " & GUICtrlRead($Input),1)
    Send(" {Enter}",0)

    [/autoit] [autoit][/autoit] [autoit]

    $Client = TCPAccept($Server)
    If $Client >= 0 Then
    Do
    $Message = TCPRecv($Client,2048)
    Until $Message <> ""
    ControlClick ("","",$Edit)
    Send("-> " & $Message,)
    Send(" {Enter}",0)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc

    [/autoit]

    2 Mal editiert, zuletzt von BigDaddy (20. Juli 2011 um 08:33)

  • Hat sich erledigt,

    ich habe das Probelm lokalisiert und ausgemerzt ;) .

    (Thema kann geschlossen werden bzw. auf gelöst gestellt)

  • Hallo BigDaddy,

    Hier werden nur Threads von Admins/Mods geclosed die den Forenregeln widersprechen.
    Du kannst das aber selbst machen, indem du deinen Eröffnungspost bearbeitest, dort den Präfix (nähe Überschrift) auf gelöst stellst und danach speicherst,

    mfg autoBert