Hallo Zusammen,
Ich habe einen Desktop-Viewer über TCP gebastelt:
Spoiler anzeigen
Wie kann ich hier am schnellsten implementieren das der client automatisch startet und ich nicht auf den listen button klicken muss :s
Ich habe einen Desktop-Viewer über TCP gebastelt:
server/anzeige:
client/anzusehender Bildschirm
VB.NET-Quellcode
- Private Sub receiveImage()
- Dim bf As New BinaryFormatter
- While client.Connected = True
- nstream = client.GetStream
- PictureBox1.Image = bf.Deserialize(nstream)
- MsgBox(nstream)
- End While
- End Sub
- Private Sub Listen()
- While client.Connected = False
- server.Start()
- client = server.AcceptTcpClient
- End While
- getImage.Start()
- End Sub
- Dim client As New TcpClient
- Dim server As New TcpListener(8085)
- Dim nstream As NetworkStream
- Dim listening As New Thread(AddressOf Listen)
- Dim getImage As New Thread(AddressOf receiveImage)
- Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Button1.Click
- listening.Start()
- Timer1.Stop()
- End Sub
- Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
- If _bS.Position + 1 > _bS.Count - 1 Then
- Timer1.Enabled = False
- Call start()
- _bS.Position = 0
- Else
- Me.Text = _bS.Position & "/" & _bS.Count - 1
- _bS.MoveNext()
- End If
- End Sub
client/anzusehender Bildschirm
VB.NET-Quellcode
- Imports System.IO
- Imports System.Net
- Imports System.Net.Sockets
- Imports System.Threading
- Imports System.Drawing
- Imports System.Runtime.Serialization.Formatters.Binary
- Public Class Form1
- Dim client As New TcpClient
- Dim nstream As NetworkStream
- Public Function Desktop() As Image
- Dim bounds As Rectangle = Nothing
- Dim screenshot As System.Drawing.Bitmap = Nothing
- Dim graph As Graphics = Nothing
- bounds = Screen.PrimaryScreen.Bounds
- screenshot = New Bitmap(bounds.Width, bounds.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb)
- graph = Graphics.FromImage(screenshot)
- graph.CopyFromScreen(bounds.X, bounds.Y, 0, 0, bounds.Size, CopyPixelOperation.SourceCopy)
- Return screenshot
- End Function
- Private Sub SendImage()
- Dim bf As New BinaryFormatter
- nstream = client.GetStream
- bf.Serialize(nstream, Desktop())
- End Sub
- Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
- SendImage()
- End Sub
- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- Try
- client.Connect("192.168.61.52", 8085)
- Catch ex As Exception
- MsgBox("Failed to connect...")
- End Try
- End Sub
- Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
- 'nstream = ("hallo")
- Timer1.Start()
- End Sub
- End Class
Wie kann ich hier am schnellsten implementieren das der client automatisch startet und ich nicht auf den listen button klicken muss :s