Ik heb een simpele server gemaakt die wacht op een connectie vanaf de client.
Normaal als de client 'hello' stuurt moet de server een password vragen.
anders moet hij een bericht sturen met 'Who are you?' en wachten op een bericht waarin 'hello' staat.
maar het werkt niet zo goed, zelfs als ik hello stuur, stuurt hij 'Who are you?' trug.
Weet iemand hoe ik het kan laten werken?
En is system.net.sockets een goede manier om een simpel chat programma te maken?
Hopelijk kan iemand me helpen...
Normaal als de client 'hello' stuurt moet de server een password vragen.
anders moet hij een bericht sturen met 'Who are you?' en wachten op een bericht waarin 'hello' staat.
maar het werkt niet zo goed, zelfs als ik hello stuur, stuurt hij 'Who are you?' trug.
Weet iemand hoe ik het kan laten werken?
En is system.net.sockets een goede manier om een simpel chat programma te maken?
Code:
Imports System.Net.Sockets
Imports System.Text
Class TCPSrv
Shared Sub Main()
'----------------START LISTENING----------------------------------
Const portNumber As Integer = 8000
Dim tcpListener As New TcpListener(portNumber)
tcpListener.Start()
Console.WriteLine("<NO CONNECTION>")
'---------------ACCEPT CONNECTION-------------------------------
1:
Dim tcpClient As TcpClient = tcpListener.AcceptTcpClient()
Console.Clear()
Console.WriteLine("<CONNECTION ESTABLISHED>")
Dim networkStream As NetworkStream = tcpClient.GetStream()
Dim bytes(tcpClient.ReceiveBufferSize) As Byte
networkStream.Read(bytes, 0, CInt(tcpClient.ReceiveBufferSize))
Dim clientdata As String = Encoding.ASCII.GetString(bytes)
If clientdata = "hello" Then
Console.WriteLine(("Client sent: " + clientdata))
Dim responseString As String = "Welcome"
Dim sendBytes As [Byte]() = Encoding.ASCII.GetBytes(responseString)
networkStream.Write(sendBytes, 0, sendBytes.Length)
pass()
Else
Dim responseString As String = "Who are you?"
Dim sendBytes As [Byte]() = Encoding.ASCII.GetBytes(responseString)
networkStream.Write(sendBytes, 0, sendBytes.Length)
GoTo 1
End If
End Sub
'----------------------AUTHENTICATION------------------------
Shared Sub pass()
Try
Dim tcpClient As New System.Net.Sockets.TcpClient()
Dim networkStream As NetworkStream = tcpClient.GetStream()
If networkStream.CanWrite And networkStream.CanRead Then
Dim sendBytes As [Byte]() = Encoding.ASCII.GetBytes("Please enter a password: ")
networkStream.Write(sendBytes, 0, sendBytes.Length)
Dim bytes(tcpClient.ReceiveBufferSize) As Byte
networkStream.Read(bytes, 0, CInt(tcpClient.ReceiveBufferSize))
' Output the data received from the client to the console.
Dim returndata As String = Encoding.ASCII.GetString(bytes)
Console.WriteLine(("Host returned: " + returndata))
End If
Catch ex As Exception
MsgBox("FAILED TO SEND REQUEST")
End Try
Console.ReadLine()
End Sub
End Class
Hopelijk kan iemand me helpen...