TCP/IP Verbindung

  • VB.NET

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von One-Soft.

    TCP/IP Verbindung

    Hallo zusammen,
    wie bekomme ich eine ordentliche Verbindung zu einem Server mittels TCP/IP hin?
    Mein Server ist zum Test noch mein Localhost über den Port 5003.

    Ich bräuchte einen Code der Send und Receive beherrscht. ;)

    Ich habe selbst nun herumprobiert und gegoogelt habe aber nichts brauchbares finden bzw. erarbeiten können, da ich mit VB 2012 abreite und die Commands so in dieser Funktion nichtmehr vorhanden sind.... :(

    LG comfix
    Danke One-Soft für deine schnelle Antwort!
    Diese hat mit sehr viel geholfen!

    n1nja ich habe irgendwann mal vor mit TCP/IP ein Game zu machen, jedoch ist meine momentane Aufgabe, eine TCP/IP Oberfläche zu schreiben die mit einem selbstentwickelten Baustein (EIB) Daten austauschen kann, um damit quasi eine Bedienoberfläche zu erstellen. (Man vergebe mir den Aufbau des Satzes)

    Dieser ist unter einer IP (DHCP-Zuteilung) unter dem Port 5003 erreichbar und dieser dient als Server.

    Das ist mein "Test"-Quellcode in einer extra Mappe:

    Für eventuelle Fragen : LEIBnix ist ein Linux-Rechner mit einer selbstentwickelten Software.

    VB.NET-Quellcode

    1. Imports System.Net.Sockets
    2. Imports System.Net
    3. Imports System.IO
    4. Public Class Form1
    5. Private stream As NetworkStream
    6. Private streamw As StreamWriter
    7. Private streamr As StreamReader
    8. Private client As New TcpClient
    9. Private t As New Threading.Thread(AddressOf Listen)
    10. Private Delegate Sub DAddItem(ByVal s As String)
    11. Dim IP As String = "127.0.0.1"
    12. Dim Port As Integer = 5003
    13. Sub Listen()
    14. While client.Connected
    15. Try
    16. Me.Invoke(New DAddItem(AddressOf AddItem), streamr.ReadLine)
    17. Catch
    18. MessageBox.Show("Verbindung zum LEIBnix nicht möglich!")
    19. Application.Exit()
    20. End Try
    21. End While
    22. End Sub
    23. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    24. Try
    25. client.Connect(IP, Port)
    26. If client.Connected Then
    27. stream = client.GetStream
    28. streamw = New StreamWriter(stream)
    29. streamr = New StreamReader(stream)
    30. t.Start()
    31. Else
    32. MsgBox("Verbindung zum LEIBnix nicht möglich!")
    33. Application.Exit()
    34. End If
    35. Catch ex As Exception
    36. MsgBox("Verbindung zum LEIBnix nicht möglich!")
    37. Application.Exit()
    38. End Try
    39. End Sub
    40. Private Sub AddItem(ByVal s As String)
    41. BindingSource1.Add(s)
    42. End Sub
    43. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    44. streamw.WriteLine(TextBox1.Text)
    45. streamw.Flush()
    46. TextBox1.Clear()
    47. End Sub
    48. End Class
    Was genau ist EIB, also wie sieht es aus, wie funktionierts ? Verstehe ich dich richtig, dass du eine GUI für deinen "Server" und "Client machen möchtest" ?

    Gruß
    Youtube Info Library 2013 jetzt im Showroom.
    Das heißt du willst erstmal "normal" Daten hin und her schicken?! Strings zb.

    Normal sollte dein Code bis hier funktionieren.
    Du kannst du Testzwecken erstmal dein eigenen Server erstellen und mit 2 Clients connecten und so was ähnliches wie nen Chat machen.
    Natürlich nur zum Testen.

    Da werden ja auch Nachrichten verschickt und empfangen.

    Zudem solltest du nicht direkt Strings verschicken im Netzwerk. Verwende Bytes dazu.
    Strings lassen sich ohne Probleme in Bytes umwandeln, die du dann ganz einfach verschlüsseln kannst.
    @n1nja
    Ja ich habe mir von One-Soft den link angeschaut und einen TCP Server gefunden über den ich halt jetzt mit 127.0.0.1 (also Localhost) teste.
    Danke für deine Hilfe. Wenn ich hilfe brauch melde ich mich wieder ;)

    @One-Soft
    EIB ist eine Steuerung mit der man eine komplette Hausinstallation steuern kann wenn die notwendingen Kommunikationsdrährte verlegt wurden.
    Mann kann mit EIB Lichter, Rollläden, Markiesen usw. per Hand oder mit dem selbstentwickelten LEIBnix alles automatisch wie eine Zeitschaltuhr steuern.
    Ich schreibe dazu die Bedienoberfläche. Über TCP muss ich nur noch ein Command wie z.B. "<ProxyInfo Module="12/1/3" value= "0">" schicken dass mein Bus weiss aha ich muss das Gerät mit der 12 Hauptgruppe 1 Mittelgruppe und 3 Unterguppe ein oder ausschalten hier in diesem Befhel value="1 oder 0".
    Ah so ist das gemeint.

    Dann müsstest du noch wissen wie das Gerät/Server Codiert ist.
    Ob es Strings direkt lesen kann oder ob du tatsächlich mit Bytes arbeiten musst.
    Hier gibt es auch verschiedene Sachen wo du drauf achten solltest.

    Ich hab sowas ähnlich auch mal gemacht, allerdings mit ne Siemens Steuerung.
    Viel wird sich da aber nicht nehmen.
    Was du auch noch hinzufügen könntest, wäre eine Steuerung übers Web, sprich über eine gesicherte Seite, auf die nur du zugreifen kannst.
    Youtube Info Library 2013 jetzt im Showroom.