Wie importiere ich Winsock in Viusal Studio 2015?

  • VB.NET

Es gibt 34 Antworten in diesem Thema. Der letzte Beitrag () ist von xChRoNiKx.

    Wie importiere ich Winsock in Viusal Studio 2015?

    Guten Abend,
    Ich hab mal eine Frage, wie kann ich Winsock in Visual Stduio 2015 bekommen?
    Ich weis das es solche fragen schon 2009, 2006 und 2004 gab, aber die sind halt mittlerweile veraltet :|

    Falls es nicht mehr geht, kann ja sein, wie kann ich das in der aktuellen vorm verwenden?

    VB.NET-Quellcode

    1. Dim commandst As String
    2. Dim pw As String
    3. Private Sub Command1_Click()
    4. Winsock1.RemoteHost = Text1.Text
    5. Winsock1.RemotePort = Text2.Text
    6. End Sub
    7. Private Sub Command2_Click()
    8. pw = Text3.Text
    9. commandst = Text4.Text
    10. Dim rsend As String
    11. rsend = "ÿÿÿÿ" & Chr(2) & "Rcon " & pw & " " & commandst
    12. Winsock1.SendData (rsend)
    13. End Sub
    14. Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
    15. Dim strdata As String
    16. Winsock1.GetData strdata
    17. strdata = Replace(strdata, "ÿÿÿÿprint", "")
    18. Text5.Text = strdata
    19. End Sub


    (ich weis der Code ist alt, ich bieg ihn mir zurecht :D )

    Grüße DerTuner

    *Topic verschoben*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Was genau hast du denn vor? Im System.Net.Sockets Namensraum gibt es die Socket-Klasse. Damit kannst du das meiste machen was so mit Networking gebraucht wird.
    Wenn du aber mal genauer erläuterst was du vorhast, gibt es vielleicht sogar noch eine bessere Lösung.

    Es gibt auch HttpClient welcher für Web Requests geeignet ist. Wenn du Tcp oder Udp brauchst, gibt es auch einen TcpClient oder UdpClient, alles schon fertig im Framework implementiert. Dann müsstest du nur lernen wie man die Klassen anwendet. Aber wie gesagt, dafür sollten wir erstmal klären was du vor hast :)
    Ich habe vor eine remoteconsole zu machen.
    Die Verbindung erfolgt über Rcon. Also ein programm für einen Fehrnzugrif auf eine Server Console.

    "Rcon ist die schnittstelle schlechthin mit der du deinen Server administrieren kannst. Sie erlaubt es dir, Befehle an deinen Gameserver zu senden, ohne auf ihm Spielen zu müssen oder sonstige PC kenntnisse zu kennen."
    (
    https://www.g-portal.com/wiki/Wie_benutze_ich_Rcon_auf_meinem_Gameserver%3F)
    Moin,
    denke es geht um Valve Games? Falls ja hier: developer.valvesoftware.com/wiki/Source_RCON_Protocol

    Da steht eigentlich alles was man wissen muss um sich da selbst was zu basteln oder du suchst dir irgend ne Library die dir
    die klein Arbeit weg nimmt. Z.b.: github.com/stefanodriussi/rconsharp
    Grüße , xChRoNiKx
    Moin,
    Es geht um Minecraft, um die server von Minecraft (kann man ja einfach Localhost auch haben).
    Da kann man Rcon auf True stellen etc. Und ich versuch eine RemoteConsole mit GUI zu machen, vor erst ist das aus führen,
    und die "antwort" des server amwichtigsten. Will das nämlich in einer RichTextBox aus geben lassen (die server Console)
    Und wo liegt das Problem?
    Hast ja den link. Dort gibts offensichtlich sogar ein minecraft beispiel.
    github.com/stefanodriussi/rconsharp#client-example


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    Heyho,

    das ist C# kannst das also auch in VB.Net verwenden.
    Einfach über NuGet installieren also RCONSHARP und RCONSOCKET

    Gibt genügend Converter Online für C#<->VB.Net
    Das Beispiel auf der Seite wäre in VB.Net z.b. so:

    VB.NET-Quellcode

    1. Imports RconSharp
    2. Imports RconSharp.Net45
    3. Public Class Form1
    4. Private Async Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    5. Dim socket As INetworkSocket = New RconSocket
    6. Dim messenger As RconMessenger = New RconMessenger(socket)
    7. Dim isConnected As Boolean = Await messenger.ConnectAsync("remotehost", 12345)
    8. Dim authenticated As Boolean = Await messenger.AuthenticateAsync("secretpassword")
    9. If (authenticated) Then
    10. Dim response = Await messenger.ExecuteCommandAsync("/help")
    11. End If
    12. End Sub
    13. End Class
    Grüße , xChRoNiKx
    Jetzt hab ich nur noch 2 Probleme,
    1. Wie kann ich eine TextBox als Eingabe nutzen (für die Befehle etc.)
    2. Wie kann ich in einer RichTextBox die Console ausgeben?

    Sieht so waus;
    mc25.bplaced.net/screenshot1.png

    Das Problem war übrigens nur das ich Async vergessen hatte :whistling:
    Heyho,

    na du hast ja schon funktionierenden Code. Jetzt musst du das ganze natürlich noch mit der GUI verbinden.
    Also bei Button druck anstatt immer das gleiche zu senden holst du dir den Text aus der Textbox und schickst den halt ab.

    TextBoxName.Text <- Da wäre der Text halt drin.
    Und den response schreibst du in die Richtextbox. Das ist keine Konsole du bekommst Text zurück den du wie auch immer verarbeiten
    kannst oder aber wie du möchtest in die RichTextBox schreiben.

    Normalerweise sollte das kein Problem sein denn so Texte aus der Textbox bekommen und oder setzten per Code sind ja Grundlagen.
    Ansonsten zeig mal Code was du so versuchst dann kann man dich auf den richtigen weg bringen.
    Grüße , xChRoNiKx
    Oki,
    Wo soll ich hier "RichTextBox" rein schreiben?
    Ich hoffe die "TextBox" passt da wo sie steht

    VB.NET-Quellcode

    1. Try
    2. Dim socket As INetworkSocket = New RconSocket
    3. Dim messenger As RconMessenger = New RconMessenger(socket)
    4. Dim isConnected As Boolean = Await messenger.ConnectAsync("remotehost", 12345)
    5. Dim authenticated As Boolean = Await messenger.AuthenticateAsync("secretpassword")
    6. If (authenticated) Then
    7. Dim response = Await messenger.ExecuteCommandAsync(TextBox1.Text)
    8. End If
    9. Catch ex As Exception
    10. MsgBox("Fehler beim senden aufgetreten!" + vbCrLf + "INFOS;" + vbCrLf + ex.ToString)
    11. End Try


    Ich hab das ganze in einen Try gepackt
    Heyho,

    warum dort das Try-Catch?
    Denn jetzt während du da programmierst kann dir die IDE null helfen. Und du machst es dir beim Debuggen nur noch schwerer.

    Fange nur Expeptions ab die du auch behandeln kannst.
    Hier dazu Lektüre: TryCatch ist ein heißes Eisen

    Nun zu deiner Frage. Du hast ja schon richtig rausgefunden wo die Textbox hin sollte. Jetzt wäre natürlich die Frage
    hast du den Code gelesen? Denn eigentlich sollte klar sein das "response" (=Antwort) das ist was du in deiner RichTextBox haben möchtest.

    Also musst du die Antwort der RTB zuweisen. Entweder mit

    VB.NET-Quellcode

    1. .AppendText(response) 'dadurch wird der Text ans Ende des vorhandenen Textes gesetzt

    oder aber

    VB.NET-Quellcode

    1. .Text = response 'Damit würde der Text der schon drin steht ersetzt werden.
    Grüße , xChRoNiKx