ciao!
stavo giocando con le socket in vb.net.
questa la classe su cui riscontro l'errore:
in pratica il server si avvia, ma se invio una richiesta di questo tipo:codice:Imports System.Net.Sockets Imports System.Text Public Class GetClient Dim clientSocket As TcpClient Dim clNo As String Public Sub startClient(ByVal startClient As TcpClient, ByVal clNo As String) Me.clientSocket = startClient Me.clNo = clNo Dim ctThread As Threading.Thread = New Threading.Thread(AddressOf doChat) ctThread.Start() End Sub Private Sub doChat() Dim requestCount As Integer Dim bytesFrom(1024) As Byte Dim dataFromClient As String Dim sendBytes As [Byte]() Dim serverResponse As String Dim rCount As String requestCount = 0 While (True) Try requestCount = requestCount + 1 Dim networkStream As NetworkStream = clientSocket.GetStream() networkStream.Read(bytesFrom, 0, CInt(clientSocket.ReceiveBufferSize)) dataFromClient = Encoding.ASCII.GetString(bytesFrom) dataFromClient = dataFromClient.Substring(0, dataFromClient.IndexOf("$")) msg("Dal client " + clNo + dataFromClient) rCount = Convert.ToString(requestCount) serverResponse = "Risposta (" + clNo + ") " + rCount sendBytes = Encoding.ASCII.GetBytes(serverResponse) networkStream.Write(sendBytes, 0, sendBytes.Length) networkStream.Flush() msg(serverResponse) Catch ex As Exception Console.WriteLine(ex.Message) Console.WriteLine(ex.StackTrace) End Try End While End Sub End Class
sulla console del server visualizzo questo:codice:curl localhost:13000
la riga 29 è questa:codice:Argomento specificato non compreso nell'intervallo. Nome parametro: size in System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size) in VBTest.GetClient.doChat() in C:\VS_PROJ\VBTest\GetClient.vb:riga 29
codice:networkStream.Read(bytesFrom, 0, CInt(clientSocket.ReceiveBufferSize))

Rispondi quotando