Click here to Skip to main content
15,900,258 members
Home / Discussions / C#
   

C#

 
AnswerRe: Stream closes while reading a socket Pin
Paulo Zemek20-Nov-09 5:57
Paulo Zemek20-Nov-09 5:57 
GeneralRe: Stream closes while reading a socket Pin
joana.simoes20-Nov-09 6:19
joana.simoes20-Nov-09 6:19 
GeneralRe: Stream closes while reading a socket Pin
Paulo Zemek22-Nov-09 7:44
Paulo Zemek22-Nov-09 7:44 
AnswerRe: Stream closes while reading a socket Pin
Luc Pattyn20-Nov-09 6:27
sitebuilderLuc Pattyn20-Nov-09 6:27 
GeneralRe: Stream closes while reading a socket Pin
joana.simoes23-Nov-09 0:13
joana.simoes23-Nov-09 0:13 
GeneralRe: Stream closes while reading a socket Pin
joana.simoes23-Nov-09 0:39
joana.simoes23-Nov-09 0:39 
GeneralRe: Stream closes while reading a socket Pin
Luc Pattyn23-Nov-09 0:43
sitebuilderLuc Pattyn23-Nov-09 0:43 
GeneralRe: Stream closes while reading a socket Pin
joana.simoes23-Nov-09 3:56
joana.simoes23-Nov-09 3:56 
Thanks again for the observations! There were two major issues with my approach (as you pointed):
- There is no need for asynchronous calls in the threaded implementation;
- To prevent my problem, I need to move the ProcessRequest function to threads, rather than the listening (the listening needs to be inside a thread as well, but just for the sake of not blocking the main thread, with the UI).
Having that in mind, I rewrote the Start method of the ProxyServer to look like this:


m_listener.Start();
System.Diagnostics.Debug.WriteLine("Listening socket on port " + m_port);

ThreadedListener tl = new ThreadedListener(m_listener, m_service);
Thread newThread = new Thread(new ThreadStart(tl.Process));
newThread.Start();

The listener class is now inside a thread; the Process function, refered by ThreadStart is sitting on a loop, waiting for the request; and inside this loop one thread is instantiating for each processRequest call (n.b.: this is the critical piece of code, where I actually handle the request and send it to the client and is also where the exception is thrown).

while (true)
{
    HttpListenerContext request = m_listener.GetContext();
    req myReq=new req(m_service);
    Thread newThread = new Thread(myReq.ProcessRequest);
    newThread.Start(request);
}


In a very empirical analysis, the application seems to me faster and encountering less exceptions... however I still enter the httpListenerException once in a while; This is the msdn error code:
ERROR_CONNECTION_ACTIVE
1230 (0x4CE)


And this is the description of the exception:

An invalid operation was attempted on an active network connection.


I am catching it, so in most cases is actually fine; however, the reason why I am so worried is that sometimes I am working with SSL authentication, in which case the SSL related classes send some exceptions that I cannot catch and cause my app to malfunction and eventually crash (maybe I will have to work on that problem, if I cannot solve this exception problem);
Thanks a lot,
cheers,
Jo
NewsRe: Stream closes while reading a socket Pin
joana.simoes23-Nov-09 6:43
joana.simoes23-Nov-09 6:43 
AnswerRe: Stream closes while reading a socket Pin
dojohansen23-Nov-09 11:15
dojohansen23-Nov-09 11:15 
NewsRe: Stream closes while reading a socket Pin
joana.simoes24-Nov-09 1:37
joana.simoes24-Nov-09 1:37 
QuestionExcel Formatting. Pin
FEMDEV20-Nov-09 4:47
FEMDEV20-Nov-09 4:47 
AnswerRe: Excel Formatting. Pin
toby3120-Nov-09 8:16
toby3120-Nov-09 8:16 
GeneralRe: Excel Formatting. Pin
FEMDEV22-Nov-09 22:44
FEMDEV22-Nov-09 22:44 
QuestionSQLite Pin
jashimu20-Nov-09 3:26
jashimu20-Nov-09 3:26 
AnswerRe: SQLite Pin
MeLight20-Nov-09 3:35
MeLight20-Nov-09 3:35 
GeneralRe: SQLite Pin
jashimu20-Nov-09 4:44
jashimu20-Nov-09 4:44 
GeneralRe: SQLite Pin
Pete O'Hanlon20-Nov-09 5:04
mvePete O'Hanlon20-Nov-09 5:04 
GeneralRe: SQLite Pin
PIEBALDconsult20-Nov-09 8:04
mvePIEBALDconsult20-Nov-09 8:04 
GeneralRe: SQLite Pin
jashimu20-Nov-09 8:09
jashimu20-Nov-09 8:09 
AnswerRe: SQLite Pin
PIEBALDconsult20-Nov-09 3:35
mvePIEBALDconsult20-Nov-09 3:35 
AnswerRe: SQLite Pin
Md. Marufuzzaman20-Nov-09 4:34
professionalMd. Marufuzzaman20-Nov-09 4:34 
QuestionSimulating a key press problem Pin
MeLight20-Nov-09 3:17
MeLight20-Nov-09 3:17 
AnswerRe: Simulating a key press problem Pin
Dave Kreskowiak20-Nov-09 6:59
mveDave Kreskowiak20-Nov-09 6:59 
GeneralRe: Simulating a key press problem Pin
MeLight20-Nov-09 7:43
MeLight20-Nov-09 7:43 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.