Peer-to-Peer Chat

    • VB.NET

    Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Kangaroo.

      Peer-to-Peer Chat

      Hi,

      da viele hier schon gefragt haben, wie man ein Fernwartungstool programmiert habe ich hier mal den ansatz ;)
      Dieser Code ist nur dazu da die Daten zu verschicken und basiert auf Peer-To-Peer. Um eine Verbindung zu einem anderem PC herzustellen muss also kein server mehr erstellt werden (ggf. muss nur ein Port geöffnet werden).


      Fangen wir mal an:

      Wir brauchen einen Timer(Timer1) der die Interval 1 hat. Vielleicht noch eine Textbox(TextBox1) und ein Button(Button1) um nachrichten eingeben bzw. versenden zu können ;)


      Imports:

      VB.NET-Quellcode

      1. Imports System.Net.Sockets
      2. Imports System.Threading
      3. Imports System.Net
      4. Imports System.IO



      Globale Variablen:

      VB.NET-Quellcode

      1. Dim Listener As New TcpListener(65535)
      2. Dim Client As New TcpClient
      3. Dim Recieve as String = ""


      Der Listener hört wie bei einem normalen Server auch hier den Port ab der in der Klammer angegeben ist. Der Client verschickt die Sachen an die angegebene IP-Adresse(wird später angegeben). In dem String "Recieve" wird später der empfange text gespeichert.


      Form_Load:

      VB.NET-Quellcode

      1. Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
      2. Dim ListThread As New Thread(New ThreadStart(AddressOf Listening))
      3. ListThread.Start()
      4. Timer1.Start()
      5. End Sub


      Hier wird ein neuer Thread für den Listener erstellt, damit sich das programm nicht aufhängt wenn der listener läuft. Außerdem wird noch der Timer gestartet.

      Listener:

      VB.NET-Quellcode

      1. Public Sub Listening()
      2. Listener.Start()
      3. End Sub


      Hier wird der Listener einfach nur gestartet.



      Der Timer:

      VB.NET-Quellcode

      1. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
      2. If Listener.Pending = True Then
      3. Recieve = ""
      4. Client = Listener.AcceptTcpClient()
      5. Dim Reader As New StreamReader(Client.GetStream())
      6. While Reader.Peek > -1
      7. Recieve = Recieve + Convert.ToChar(Reader.Read()).ToString
      8. End While
      9. MsgBox(Recieve)
      10. End If
      11. End Sub


      Der Timer überprüft jede Millisekunde(sofern die Interval auf 1 steht) ob der Listener etwas empfängt. Wenn er etwas empfängt dann liest ein StreamReader das verschickte aus dem Client aus und zeigt den Text in einer Messagebox an.



      Text versenden:


      VB.NET-Quellcode

      1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      2. Client = New TcpClient(*IP Adresse*, 65535)
      3. Dim Writer As New StreamWriter(Client.GetStream())
      4. Writer.Write(TextBox1.Text)
      5. Writer.Flush()
      6. End Sub



      Hier wird dem Clienten dann die IP-Adresse und der Port zugewiesen und der Text aus TextBox1 verschickt.


      Das wars auch schon :D



      Viel Spaß mit dem Code...



      Greetz,

      viperkill