Einen schönen guten Tag liebe Community,
leider muss ich euch mit folgendem Problem belästigen ![]()
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
. Immer offen für alles.
Spoiler anzeigen
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Include <GuiTab.au3>
#include <SliderConstants.au3>
#include <StaticConstants.au3>
#include <INet.au3>
;~ ############################################Main GUI####################################################################################
[/autoit] [autoit][/autoit] [autoit]FileInstall("C:\BackgroundZ.jpg",@TempDir & "\")
Global $WMP_Objekt = ObjCreate ( "WMPLayer.ocx" )
$MainGUI = GUICreate("Big Daddy´s MusicBox",800,400)
$Pic = GUICtrlCreatePic(@TempDir & "\BackgroundZ.jpg", 0, 20, 800, 400,-1,0x00100000)
GuiCTRLSetState(-1,$GUI_DISABLE)
;~ #############################################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)
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)
$Status_Button = GUICtrlCreateButton("Status",365,110,100,20)
$Status = GUICtrlCreateLabel("-Status Unbekannt-",340,350,150,15,$SS_CENTER)
GUICtrlSetBkColor($Status,0xFF4D00)
;~ ##############################################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)
;~ ###############################################Tab Option######################################################################
[/autoit] [autoit][/autoit] [autoit]$Tab_3 = GUICtrlCreateTabItem("Option")
$CoomingSoon2 = GUICtrlCreateLabel("Cooming Soon",340,200,150,15,$SS_CENTER)
GUICtrlSetBkColor($CoomingSoon2,0xff0000)
GUISetState()
[/autoit] [autoit][/autoit] [autoit];~ ##############################################Button Abfrage##################################################################################
[/autoit] [autoit][/autoit] [autoit]While 1
$msg = GUIGetMsg()
Select
Case $msg = $Status_Button
Status()
Case $msg = $Volume
$WMP_Objekt.settings.volume = GUICtrlRead($Volume)
Case $msg = $GUI_Event_CLOSE
ExitLoop
Case $msg = $Start_Button
Start()
Case $msg = $Stop_Button
$WMP_Objekt.controls.stop()
Case $msg = $Senden_Button
Chat()
EndSelect
WEnd
;~ ###############################################Funktionen#################################################################################
[/autoit] [autoit][/autoit] [autoit]Func Start()
[/autoit] [autoit][/autoit] [autoit]$RadioURL = "http://DYNDNS"
$WMP_Objekt.URL = $RadioURL
$WMP_Objekt.controls.play()
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
EndFunc
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func Chat()
;IP und Port von dir
$Ip = _GetIP()
$Port = 3000
$Ip2 = _GetIP()
$Port2 = 3000
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)
$Client = TCPAccept($Server)
If $Client >= 0 Then
Do
$Message = TCPRecv($Client,2048)
Until $Message <> ""
ControlClick ("","",$Edit)
Send("-> " & $Message,)
Send(" {Enter}",0)
EndIf
EndFunc
[/autoit]