Ich kann keine Bytes mit dem TCPClient verwenden... :/

  • C#

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Ich kann keine Bytes mit dem TCPClient verwenden... :/

    Guten Tag liebe Community.
    Ich habe noch ein kleines Problem. Ich versuche derzeit Commands bzw. Befehle an meinem SmartTV zu senden, welche anscheinend zwecklos sind.
    Mein Tool verbindet sich zwar mit dem Fernseher, ich kann aber keine Nachricht oder ähnliches zum Fernseher senden.

    Meine Klasse sieht derzeit so aus:

    C#-Quellcode

    1. using System;
    2. using System.Collections.Generic;
    3. using System.Linq;
    4. using System.Text;
    5. using System.Threading.Tasks;
    6. using System.Net.Sockets;
    7. using System.Net;
    8. using System.IO;
    9. using System.Windows.Forms;
    10. namespace SmartTV_Controller
    11. {
    12. public class SmartTV
    13. {
    14. public string ipaddress;
    15. public int portnumber;
    16. TcpClient tcp;
    17. public void testConnection(string ipAddress, int port)
    18. {
    19. tcp = new TcpClient(ipAddress, Convert.ToInt32(port));
    20. }
    21. public void SendData(int Data)
    22. {
    23. int intValue = IPAddress.HostToNetworkOrder(Data);
    24. byte[] intBytes = BitConverter.GetBytes(intValue);
    25. StreamBytes(intBytes, tcp);
    26. }
    27. public void getConnection()
    28. {
    29. try
    30. {
    31. FileStream fl = File.Open("connection.txt", FileMode.OpenOrCreate);
    32. byte[] details = new byte[fl.Length];
    33. fl.Read(details, 0, (int)fl.Length);
    34. string data = Encoding.UTF8.GetString(details);
    35. string[] lines = data.Split(new string[] { "\r\n" }, StringSplitOptions.None);
    36. foreach (string line in lines)
    37. {
    38. string[] Adress = line.Split(':');
    39. ipaddress = Adress[0];
    40. portnumber = Convert.ToInt32(Adress[1]);
    41. tcp = new TcpClient(ipaddress, portnumber);
    42. fl.Close();
    43. }
    44. }
    45. catch (Exception exe)
    46. {
    47. MessageBox.Show(exe.ToString());
    48. }
    49. }
    50. public void StreamBytes(byte[] bytes, TcpClient tcp)
    51. {
    52. var Stream = tcp.GetStream();
    53. Stream.Write(bytes, 0, bytes.Length);
    54. }
    55. }
    56. }


    So sieht mein Button aus:

    C#-Quellcode

    1. private void button1_Click(object sender, EventArgs e)
    2. {
    3. try
    4. {
    5. st.getConnection();
    6. st.SendData(1);
    7. }
    8. catch (Exception exe)
    9. {
    10. MessageBox.Show(exe.toString());
    11. }
    12. }

    Soweit ich weiß ist 1 = Power damit sich der Fernseher ausschaltet, passiert aber nicht. :/
    MfG.

    JazzerDEV schrieb:

    ich kann aber keine Nachricht oder ähnliches zum Fernseher senden.
    Hast Du mal nach einem Demo-Snippet beim Hersteller des Fernsehers gesucht?
    Normalerweise gehört solch zum Lieferumfang bzw. zum Service.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!