ErikBooy007
Terugkerende gebruiker
- Lid geworden
- 24 mei 2007
- Berichten
- 3.814
Ik ben begonnen me een beetje te verdiepen in communicatie tussen PC's middels VB.NET (kwam weer terug op dit idee door een topic dat hier pas gepsot werd). Nu heb ik echter een probleempje. Ik wil geen gebruik maken van winsock of oswinsock (zoals in dat topic naar voren kwam).
Ik heb nu de volgende code:
[CPP]
Imports System.Net.Sockets
Imports System.Text
Public Class Form1
Dim serverSocket As New TcpListener(8888)
Dim requestCount As Integer
Dim clientSocket As TcpClient
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Public Sub output(ByVal text As String)
lbxLog.Items.Add(text)
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
serverSocket.Start()
output("Server Started")
clientSocket = serverSocket.AcceptTcpClient()
output("Accept connection from client")
requestCount = 0
While (True)
Try
requestCount = requestCount + 1
Dim networkStream As NetworkStream = clientSocket.GetStream()
Dim bytesFrom(1024) As Byte
networkStream.Read(bytesFrom, 0, CInt(clientSocket.ReceiveBufferSize))
Dim dataFromClient As String = System.Text.Encoding.ASCII.GetString(bytesFrom)
dataFromClient = dataFromClient.Substring(0, dataFromClient.IndexOf("$"))
output("Data from client: " & dataFromClient)
Dim serverResponse As String = "Server response: " & Convert.ToString(requestCount)
Dim sendBytes As [Byte]() = Encoding.ASCII.GetBytes(serverResponse)
networkStream.Write(sendBytes, 0, sendBytes.Length)
networkStream.Flush()
output(serverResponse)
Catch ex As Exception
output(ex.ToString)
End Try
End While
clientSocket.Close()
serverSocket.Stop()
output("exit")
End Sub
End Class
[/CPP]
CPP hihlighting werkt ook wel aardig voor VB
Nu is probleem, elke keer als ik de code aanroep voor het communicatie gedeelte loopt het programma vast. Ik krijg geen foutmelding of iets dergelijks.
Nu ga ik ervanuit dat het door de While ( True ) komt, maar ik weet niet wat ik daar anders aan moet doen.
Deze code komt van http://vb.net-informations.com/communications/vb.net_Server_Socket.htm en was daar eigenlijk een console-application, maar ik ging ervanuit dat ik die ook wel in een Windows Form Application kon gebruiken.
Kunnen jullie me vertellen, wat ik fout doe, en hoe ik het op kan lossen?
Alvast bedankt!
EDIT:
Ik zou het ook wel heel erg waarderen als jullie me kort kunnen uitleggen, hoe ik een verbinding tot stand breng, de server berichten laat sturen en de client er naar laat luisteren.
Ik heb nu de volgende code:
[CPP]
Imports System.Net.Sockets
Imports System.Text
Public Class Form1
Dim serverSocket As New TcpListener(8888)
Dim requestCount As Integer
Dim clientSocket As TcpClient
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Public Sub output(ByVal text As String)
lbxLog.Items.Add(text)
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
serverSocket.Start()
output("Server Started")
clientSocket = serverSocket.AcceptTcpClient()
output("Accept connection from client")
requestCount = 0
While (True)
Try
requestCount = requestCount + 1
Dim networkStream As NetworkStream = clientSocket.GetStream()
Dim bytesFrom(1024) As Byte
networkStream.Read(bytesFrom, 0, CInt(clientSocket.ReceiveBufferSize))
Dim dataFromClient As String = System.Text.Encoding.ASCII.GetString(bytesFrom)
dataFromClient = dataFromClient.Substring(0, dataFromClient.IndexOf("$"))
output("Data from client: " & dataFromClient)
Dim serverResponse As String = "Server response: " & Convert.ToString(requestCount)
Dim sendBytes As [Byte]() = Encoding.ASCII.GetBytes(serverResponse)
networkStream.Write(sendBytes, 0, sendBytes.Length)
networkStream.Flush()
output(serverResponse)
Catch ex As Exception
output(ex.ToString)
End Try
End While
clientSocket.Close()
serverSocket.Stop()
output("exit")
End Sub
End Class
[/CPP]
CPP hihlighting werkt ook wel aardig voor VB
Nu is probleem, elke keer als ik de code aanroep voor het communicatie gedeelte loopt het programma vast. Ik krijg geen foutmelding of iets dergelijks.
Nu ga ik ervanuit dat het door de While ( True ) komt, maar ik weet niet wat ik daar anders aan moet doen.
Deze code komt van http://vb.net-informations.com/communications/vb.net_Server_Socket.htm en was daar eigenlijk een console-application, maar ik ging ervanuit dat ik die ook wel in een Windows Form Application kon gebruiken.
Kunnen jullie me vertellen, wat ik fout doe, en hoe ik het op kan lossen?
Alvast bedankt!
EDIT:
Ik zou het ook wel heel erg waarderen als jullie me kort kunnen uitleggen, hoe ik een verbinding tot stand breng, de server berichten laat sturen en de client er naar laat luisteren.
Laatst bewerkt: