네트워크를 통해 전송되는 데이터의 길이를 얻는 것은 가장 분명한 것 같지만 TCPClient 및 TCPListener를 사용하여 네트워크를 통해 전송되는 바이트 길이를 얻는 방법을 알아낼 수 없습니까? 이 지금까지 내 코드입니다 : 내가으로 데이터를 읽을거야 바이트의 배열의 크기를 설정할 수는 NetworkStream의 길이를 얻을 필요가TCPListener/networkstream vb.net
'Must listen on correct port- must be same as port client wants to connect on.
Const portNumber As Integer = 9999
Dim tcpListener As New TcpListener(IPAddress.Parse("192.168.2.7"), portNumber)
tcpListener.Start()
Console.WriteLine("Waiting for connection...")
'Accept the pending client connection and return
'a TcpClient initialized for communication.
Dim tcpClient As TcpClient = tcpListener.AcceptTcpClient()
Console.WriteLine("Connection accepted.")
' Get the stream
Dim networkStream As NetworkStream = tcpClient.GetStream()
'' Read the stream into a byte array
. 그러나 networkStream.length는 지원되지 않으며 작동하지 않고 Notsupportedexception을 throw합니다.
내가 생각할 수있는 유일한 다른 방법은 데이터를 보내기 전에 데이터 크기를 보내는 것입니다. 그러나 이것은 먼 길을가는 것처럼 보입니다.
최대 1024 바이트까지만 읽을 수 있습니까? 데이터를 가져 오기 전에 데이터의 크기가 필요하므로 읽을 바이트 수를 설정할 수 있습니다. –
실제로는 한 번에 최대 1024 개를 읽습니다. 더 적 으면 읽기가 적어집니다. 그러므로 while 루프. read 명령은 실제로 읽은 바이트 수를 반환합니다.그러나 버퍼를 먼저 설정해야합니다. –
예, 1024 바이트 이상인 경우 어떻게됩니까 ?? 그리고 데이터의 길이가 필요한 이유는 버퍼를 설정하는 것입니다 !!! –