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:
|
Visual Basic Quellcode
|
1
2
3
4
|
Imports System.Net.Sockets
Imports System.Threading
Imports System.Net
Imports System.IO
|
Globale Variablen:
|
Visual Basic Quellcode
|
1
2
3
|
Dim Listener As New TcpListener(65535)
Dim Client As New TcpClient
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:
|
Visual Basic Quellcode
|
1
2
3
4
5
|
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim ListThread As New Thread(New ThreadStart(AddressOf Listening))
ListThread.Start()
Timer1.Start()
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:
|
Visual Basic Quellcode
|
1
2
3
|
Public Sub Listening()
Listener.Start()
End Sub
|
Hier wird der Listener einfach nur gestartet.
Der Timer:
|
Visual Basic Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
If Listener.Pending = True Then
Recieve = ""
Client = Listener.AcceptTcpClient()
Dim Reader As New StreamReader(Client.GetStream())
While Reader.Peek > -1
Recieve = Recieve + Convert.ToChar(Reader.Read()).ToString
End While
MsgBox(Recieve)
End If
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:
|
Visual Basic Quellcode
|
1
2
3
4
5
6
7
|
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Client = New TcpClient(*IP Adresse*, 65535)
Dim Writer As New StreamWriter(Client.GetStream())
Writer.Write(TextBox1.Text)
Writer.Flush()
End Sub
|
Hier wird dem Clienten dann die IP-Adresse und der Port zugewiesen und der Text aus TextBox1 verschickt.
Das wars auch schon
Viel Spaß mit dem Code...
Greetz,
viperkill