Sto creando un'applicazione console che mediante un socket si connette ad un
server di posta.
Il mio problema è che quando vado leggere la risposta nel buffer questa non
è ancora arrivata del tutto e quindi la lettura risultare incompleta.
Quello che vorrei fare è fare in modo che l'applicazione proceda oltre solo
dopo che la risposta è arrivata completamente.
Spero di avere esposto chiaramente il mio problema.

Grazie anticipatamente per l'aiuto.

Alessio Arrigoni - CONSULENTE INFORMATICO
https://www.alessioarrigoni.it
https://www.assistenzapccomo.it
37 messaggi dal 12 ottobre 2005
bisogna vedere com'è implementato. potresti postare il codice?
Il problema l'ho in parte risolto, ma comunque mi sono anche espresso male perchè non era una socket quella che utilizzavo ma una connessione mediante la classe TcpClient.
Ora ho provato ad utilizzare una socket e funziona. Il problema nasceva dal fatto che dovevo utilizare una chiamata asincrona.
Dicevo che mi è sorto un altro problema con la seguente funzione:

private static string ReadSocket(Socket s) {
Byte[] bytesReceived = new Byte[512];
string strBuffer = "";
int bytes = 0;
do {
bytes = s.Receive(bytesReceived, bytesReceived.Length, 0);
strBuffer += Encoding.ASCII.GetString(bytesReceived, 0, bytes);
} while (bytes > 0);
return strBuffer;
}

Funziona correttamente però sulla chiamata della s.Receive, noto che dopo la prima lettura rimane ferma a lungo prima di terminare il ciclo.
Come posso ottimizzare il ciclo di lettura ?

Grazie

Alessio Arrigoni - CONSULENTE INFORMATICO
https://www.alessioarrigoni.it
https://www.assistenzapccomo.it
501 messaggi dal 09 giugno 2006
Contributi
Ciao.

Il secondo problema che hai segnalato credo che possa essere risolto impostando la proprietà ReceiveTimeout ad un valore idoneo alla circostanza (es. 1000 che corrisponde a 1000 ms ossia 1 sec).

Ciao.

.:. Marcello Rutter .:.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.