ErikBooy007
Terugkerende gebruiker
- Lid geworden
- 24 mei 2007
- Berichten
- 3.814
Ik ben op zoek naar uitleg over het verzenden van berichten over het netwerk.
Wat ik uiteindelijk wil bereiken:
Ik schrijf een programmaatje dat ik op een PC in huis installeer. Op mijn laptop heb ik dan weer een ander programmaatje dat ik kan gebruiken om een commando te sturen om de PC af te sluiten.
Nu is het afsluiten en zo geen probleem, maar hoe krijg ik een opdracht verzonden over het netwerk?
Ik heb naar sockets gekeken, maar ik werd er nog niet echt wijs uit.
Nu is mijn vraag:
Kan iemand mij een code tonen, om berichten het netwerk in te sturen en ze in een ander programma weer uit te lezen?
Ik begrijp dat dat misschien een beetje veel gevraagd is, dus met een goede tutorial over sockets zou ik ook heel blij zijn!
_____________________________
EDIT:
Ik heb nu de volgende codes:
Form1.vb:
Form2.vb:
Form2.vb is m'n startup-form (onlogisch, i know) daarop heb ik een button om de connectie te starten en een button om het andere form weer te geven.
Maar als ik de connectie probeer te starten loopt het programma vast. Ik krijg geen foutmelding of iets dergelijkt, maar ik kan gewoon niets meer.
Any ideas?
Wat ik uiteindelijk wil bereiken:
Ik schrijf een programmaatje dat ik op een PC in huis installeer. Op mijn laptop heb ik dan weer een ander programmaatje dat ik kan gebruiken om een commando te sturen om de PC af te sluiten.
Nu is het afsluiten en zo geen probleem, maar hoe krijg ik een opdracht verzonden over het netwerk?
Ik heb naar sockets gekeken, maar ik werd er nog niet echt wijs uit.
Nu is mijn vraag:
Kan iemand mij een code tonen, om berichten het netwerk in te sturen en ze in een ander programma weer uit te lezen?
Ik begrijp dat dat misschien een beetje veel gevraagd is, dus met een goede tutorial over sockets zou ik ook heel blij zijn!
_____________________________
EDIT:
Ik heb nu de volgende codes:
Form1.vb:
Code:
Imports System.Net.Sockets
Imports System.Net
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim tcp As TcpClient = New TcpClient()
tcp.Connect("192.168.1.201", 8000)
Dim networkStream As NetworkStream = tcp.GetStream()
If networkStream.CanWrite & networkStream.CanRead Then
Dim sendBytes As Byte() = System.Text.Encoding.ASCII.GetBytes("Haaaaallo")
networkStream.Write(sendBytes, 0, sendBytes.Length)
Dim bytes(tcp.ReceiveBufferSize) As Byte
networkStream.Read(bytes, 0, bytes.Length)
Dim returnData As String = System.Text.Encoding.ASCII.GetString(bytes)
lbxMessages.Items.Add("Host returned: " & returnData)
Else
If Not networkStream.CanRead Then
lbxMessages.Items.Add("Kan niet lezen uit de stream")
tcp.Close()
Else
If Not networkStream.CanWrite Then
lbxMessages.Items.Add("Kan niet schrijven naar stream")
End If
End If
End If
End Sub
End Class
Form2.vb:
Code:
Imports System.Net.Sockets
Imports System.Net
Imports System.Text
Public Class Form2
Private Sub StartConnection()
' Must listen on correct port- must be same as port client wants to connect on.
Const portNumber As Integer = 8000
Dim ip As IPAddress = IPAddress.Any
Dim tcpListener As New TcpListener(ip, portNumber)
tcpListener.Start()
lbxMessages.Items.Add("Waiting for connection...")
Try
'Accept the pending client connection and return
'a TcpClient initialized for communication.
Dim tcpClient As TcpClient = tcpListener.AcceptTcpClient()
lbxMessages.Items.Add("Connection accepted.")
' Get the stream
Dim networkStream As NetworkStream = tcpClient.GetStream()
' Read the stream into a byte array
Dim bytes(tcpClient.ReceiveBufferSize) As Byte
networkStream.Read(bytes, 0, CInt(tcpClient.ReceiveBufferSize))
' Return the data received from the client to the console.
Dim clientdata As String = Encoding.ASCII.GetString(bytes)
lbxMessages.Items.Add(("Client sent: " + clientdata))
Dim responseString As String = "Connected to server."
Dim sendBytes() As Byte = Encoding.ASCII.GetBytes(responseString)
networkStream.Write(sendBytes, 0, sendBytes.Length)
lbxMessages.Items.Add("Message Sent /> : " + responseString)
'Any communication with the remote client using the TcpClient can go here.
'Close TcpListener and TcpClient.
tcpClient.Close()
tcpListener.Stop()
lbxMessages.Items.Add("exit")
Catch ex As Exception
lbxMessages.Items.Add(ex.ToString())
End Try
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Form1.Show()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
StartConnection()
End Sub
End Class
Form2.vb is m'n startup-form (onlogisch, i know) daarop heb ik een button om de connectie te starten en een button om het andere form weer te geven.
Maar als ik de connectie probeer te starten loopt het programma vast. Ik krijg geen foutmelding of iets dergelijkt, maar ik kan gewoon niets meer.
Any ideas?
Laatst bewerkt: