morgan1991
08-02-2010, 13:36
Здравствуйте!
Написал вот такой простенький скрипт:
Global $Ip = @IPAddress1
Global $Port = 8000
Global $MainSocket, $ConnectedSocket = -1, $Temp = 0, $File
Global $head = "HTTP/1.0 200 OK" & @CRLF
$head &= "Content-Type: audio/mpeg" & @CRLF
$head &= "icy-br:192" & @CRLF
$head &= "ice-audio-info: ice-samplerate=44100;ice-bitrate=192;ice-channels=2" & @CRLF
$head &= "icy-br:192" & @CRLF
$head &= "icy-name:Test" & @CRLF
$head &= "icy-pub:0" & @CRLF
$head &= "icy-url:http://" & @IPAddress1 & @CRLF
$head &= "Server: Icecast 2.3.2" & @CRLF
$head &= "Cache-Control: no-cache" & @CRLF & @CRLF
TCPStartUp()
$MainSocket = TCPListen($Ip, $Port)
If $MainSocket = -1 Then Exit
While $ConnectedSocket = -1
$ConnectedSocket = TCPAccept($MainSocket)
WEnd
While 1
$recv = TCPRecv($ConnectedSocket, 4096)
If $recv <> "" Then
$Temp = 1
ConsoleWrite($recv)
EndIf
If $recv = "" And $Temp = 1 Then ExitLoop
WEnd
TCPSend($ConnectedSocket, $head)
$File = FileOpen("Guf - Mutnie_Zamuti.mp3", 0)
While 1
TCPSend($ConnectedSocket, FileRead($File, 4096))
If @error Then
Exit ShellExecute(@ScriptFullPath)
EndIf
WEnd
Создаю файл test.m3u, в нём пишу http://my_ip:8000 запускаю в винампе всё отлично, но в остальных плеерах скрипт перезапускается несколько раз, благодоря этой строчке:
TCPSend($ConnectedSocket, FileRead($File, 4096))
If @error Then
Exit ShellExecute(@ScriptFullPath)
EndIf
После чего начинает играть музыка в плеере.
Подскажите пожалуйста в чём косяк?
Написал вот такой простенький скрипт:
Global $Ip = @IPAddress1
Global $Port = 8000
Global $MainSocket, $ConnectedSocket = -1, $Temp = 0, $File
Global $head = "HTTP/1.0 200 OK" & @CRLF
$head &= "Content-Type: audio/mpeg" & @CRLF
$head &= "icy-br:192" & @CRLF
$head &= "ice-audio-info: ice-samplerate=44100;ice-bitrate=192;ice-channels=2" & @CRLF
$head &= "icy-br:192" & @CRLF
$head &= "icy-name:Test" & @CRLF
$head &= "icy-pub:0" & @CRLF
$head &= "icy-url:http://" & @IPAddress1 & @CRLF
$head &= "Server: Icecast 2.3.2" & @CRLF
$head &= "Cache-Control: no-cache" & @CRLF & @CRLF
TCPStartUp()
$MainSocket = TCPListen($Ip, $Port)
If $MainSocket = -1 Then Exit
While $ConnectedSocket = -1
$ConnectedSocket = TCPAccept($MainSocket)
WEnd
While 1
$recv = TCPRecv($ConnectedSocket, 4096)
If $recv <> "" Then
$Temp = 1
ConsoleWrite($recv)
EndIf
If $recv = "" And $Temp = 1 Then ExitLoop
WEnd
TCPSend($ConnectedSocket, $head)
$File = FileOpen("Guf - Mutnie_Zamuti.mp3", 0)
While 1
TCPSend($ConnectedSocket, FileRead($File, 4096))
If @error Then
Exit ShellExecute(@ScriptFullPath)
EndIf
WEnd
Создаю файл test.m3u, в нём пишу http://my_ip:8000 запускаю в винампе всё отлично, но в остальных плеерах скрипт перезапускается несколько раз, благодоря этой строчке:
TCPSend($ConnectedSocket, FileRead($File, 4096))
If @error Then
Exit ShellExecute(@ScriptFullPath)
EndIf
После чего начинает играть музыка в плеере.
Подскажите пожалуйста в чём косяк?