ausgelagert aus TCP/IP Verbindung ~VaporiZed
Habe ein ähnliches Problem. Mein gewünschter TCP-Partner heißt Denon DN700C (denon-professional.de/dn-700c).
Das Gerät ist schlichtweg unbedienable. Wenn es einen Track abspielt, kann man nicht mal einen anderen vorwählen (Press Stop) oder einen zum Programm hinzufügen. Professional eben.
Das hat in mir den Wunsch ausgelöst, einmalig die ganzen vorhandenen Tracks einzulesen und von meiner VB-Anwendung aus zu steuern.
Play, Stop, On und Off sprich senden funktioniert auch einwandfrei, nur bekomme ich keine Antworten rein.
Der hier aus dem Forum zusammengesammelte Code wird scheinbar nur bis zur Zeile "client = Server.AcceptTcpClient" ausgeführt.
Kann mir jemand sagen, woran es hapert?
Spoiler anzeigen
Habe ein ähnliches Problem. Mein gewünschter TCP-Partner heißt Denon DN700C (denon-professional.de/dn-700c).
Das Gerät ist schlichtweg unbedienable. Wenn es einen Track abspielt, kann man nicht mal einen anderen vorwählen (Press Stop) oder einen zum Programm hinzufügen. Professional eben.
Das hat in mir den Wunsch ausgelöst, einmalig die ganzen vorhandenen Tracks einzulesen und von meiner VB-Anwendung aus zu steuern.
Play, Stop, On und Off sprich senden funktioniert auch einwandfrei, nur bekomme ich keine Antworten rein.
Der hier aus dem Forum zusammengesammelte Code wird scheinbar nur bis zur Zeile "client = Server.AcceptTcpClient" ausgeführt.
Kann mir jemand sagen, woran es hapert?
VB.NET-Quellcode
- Imports System.Net.Sockets
- Imports System.Net
- Imports System.IO
- Imports System.Text
- Public Class Form1
- '######################################################################## Denon MIDI Codes
- Dim PowerOn As Byte() = {&H11, &H1, &H0, &H1, &H1, &H0, &H31, &H34}
- Dim PowerOff As Byte() = {&H11, &H1, &H0, &H1, &H2, &H0, &H31, &H35}
- Dim PlayTrack As Byte() = {&H11, &H1, &H0, &H0, &H2, &H0, &H31, &H34}
- Dim StopTrack As Byte() = {&H11, &H1, &H0, &H0, &H1, &H0, &H31, &H33}
- Dim getTransportStatus As Byte() = {&H11, &H1, &H0, &H9, &H1, &H0, &H31, &H43}
- '######################################################################## Server
- Dim stream As NetworkStream
- Dim Server As TcpListener
- Dim client As New TcpClient
- Dim ipendpoint As IPEndPoint = New IPEndPoint(IPAddress.Any, 23)
- Dim mainthread As Threading.Thread
- '########################################################################
- Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- client.Connect("192.168.178.58", 23) ' Denon-IP, Telnet, Exception wenn schon verbunden oder Gerät nicht vorhanden!!!
- If client.Connected Then
- ToolStripStatusLabel1.Text = "Verbindung hergestellt!"
- stream = client.GetStream
- mainthread = New Threading.Thread(AddressOf mainserver)
- Control.CheckForIllegalCrossThreadCalls = False
- mainthread.Start()
- Else
- ToolStripStatusLabel1.Text = "Verbindung konnte nicht hergestellt werden!"
- End If
- End Sub
- '########################################################################
- Sub mainserver() ' thread
- Try
- Server = New TcpListener(ipendpoint)
- Server.Start()
- client = Server.AcceptTcpClient
- stream.ReadTimeout = 10000
- While True
- ListBox1.Items.Add("Listening...")
- Dim ReceiveBytesVb(client.ReceiveBufferSize) As Byte
- stream.Read(ReceiveBytesVb, 0, CInt(client.ReceiveBufferSize))
- Dim ReturnDataVb As String = Encoding.ASCII.GetString(ReceiveBytesVb)
- ListBox1.Items.Add(ReturnDataVb)
- End While
- Catch ex As Exception
- MsgBox("Catch: " & ex.Message)
- End Try
- End Sub
- '########################################################################
- Private Sub Form1__close(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.FormClosing
- Server.Stop()
- Try
- mainthread.Abort()
- Catch
- End Try
- End Sub
- '########################################################################
- Sub client_send(ByRef bytes As Array)
- Dim pre As Byte() = {&HF0, &H0, &H40, &H3}
- Dim post As Byte() = {&HF7}
- Dim send As Byte() = pre.Concat(bytes).ToArray.Concat(post).ToArray
- stream.Write(send, 0, send.Length)
- End Sub
- Private Sub ButtonAus_Click(sender As Object, e As EventArgs) Handles ButtonAus.Click
- client_send(PowerOff)
- End Sub
- Private Sub ButtonEin_Click(sender As Object, e As EventArgs) Handles ButtonEin.Click
- client_send(PowerOn)
- End Sub
- Private Sub ButtonPlay_Click(sender As Object, e As EventArgs) Handles ButtonPlay.Click
- client_send(PlayTrack)
- End Sub
- Private Sub ButtonStop_Click(sender As Object, e As EventArgs) Handles ButtonStop.Click
- client_send(StopTrack)
- End Sub
- Private Sub ButtonGetTransportStatus_Click(sender As Object, e As EventArgs) Handles ButtonGetTransportStatus.Click
- client_send(getTransportStatus)
- End Sub
- '########################################################################
- End Class
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VaporiZed“ ()