Hej! Du hämtar bara vad som finns i buffern precis vid just det tillfället, någon defintion av "all data" finns inte riktigt, den enda som vet när all data har kommit är du iom. att du vet hur protokollet fungerar, och därför är det ditt ansvar att den hämtar data ända tills att "all data" har kommit. Hmm, ok!Flera tecken i TCP-socket
Jag tänkte försöka att använda följande sub som jag startar med en Thread för att ta
lite data via tcp. Min fråga är ganska enkel. Hur gör man får att ta emot många tecken?
Koden nedan tar bara emot ett, sedan lägger det av.. :(
När jag gjorde samma sak i Java en gång i tiden så använde jag HasNext och väntade
på '\n' vill jag minnas..
Sub TCPListener()
' Must listen on correct port- must be same as port client wants to connect on.
Dim text As String
Const portNumber As Integer = 1337
Dim tcpListener As New TcpListener(portNumber)
restart:
tcpListener.Start()
MsgBox("Waiting for connection...")
Try
'Accept the pending client connection and return
'a TcpClient initialized for communication.
Dim tcpClient As TcpClient = tcpListener.AcceptTcpClient()
'MsgBox("Connection accepted.")
' Get the stream
Dim networkStream As NetworkStream = tcpClient.GetStream()
' Read the stream into a byte array
'Dim bytes(tcpClient.ReceiveBufferSize) As Byte
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)
MsgBox(("Client sent: " + clientdata))
Dim responseString As String = "Connected to server..."
Dim sendBytes As [Byte]() = Encoding.ASCII.GetBytes(responseString)
networkStream.Write(sendBytes, 0, sendBytes.Length)
MsgBox(("Message Sent /> : " + responseString))
'Any communication with the remote client using the TcpClient can go here.
'Close TcpListener and TcpClient.
tcpClient.Close()
tcpListener.Stop()
Catch e As Exception
'MsgBox(e.ToString())
End Try
GoTo restart
End SubSv: Flera tecken i TCP-socket
(Just nu hämtar du bara det som råkar finnas precis efter att anslutningen har skapats, resten av datan kommer när du skickar ditt svar)Sv: Flera tecken i TCP-socket
Någon som har ett tips om hur jag ska börja
för att få ihop en kod som tar emot fler tecken?