ciao!
stavo giocando con le socket in vb.net.
questa la classe su cui riscontro l'errore:
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
in pratica il server si avvia, ma se invio una richiesta di questo tipo:
codice:
curl localhost:13000
sulla console del server visualizzo questo:
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
la riga 29 è questa:
codice:
networkStream.Read(bytesFrom, 0, CInt(clientSocket.ReceiveBufferSize))