Salve a tutti, sto realizzando una piccola console che funziona tramite browser, il problema è che non funziona bene la proprietà socket.Available perchè indica sempre 0. Però se metto un breakpoint nel punto in cui faccio il controllo di socket.Available il valore che ottengo è sempre maggiore di 0. E' come se lanciando l'applicazione normalmente i dati arrivassero dopo il controllo. Vi faccio vedere il codice che è meglio.
Creazione del socket:
Costruttore della classe
public TelnetSession(string address, int port)
{
this._address = address;
this._port = port;
_socket = CreateSocket(address, port);
_networkStream = new NetworkStream(_socket);
}
Metodo Read(), legge la risposta dal server
public string Read()
{
byte[] Buff;
string ret="";
int c = 0;
if (_networkStream.CanRead)
{
while(_socket.Available > 0)
{
Buff = new byte[1024];
c = _networkStream.Read(Buff, 0, Buff.Length);
ret += Encoding.ASCII.GetString(Buff, 0, c);
}
return ret;
}
else
{
return "IMPOSSIBILE LEGGERE";
}
}
Qualche suggerimento?Ho provato a settare il TimeOut in lettura e scrittura, sia sul socket che sul Networkstream ma non è cambiato nulla.