Click here to Skip to main content
15,890,527 members
Home / Discussions / C#
   

C#

 
QuestionClosing sockets in asynchronous TCP server Pin
Metal767-Nov-08 22:42
Metal767-Nov-08 22:42 
AnswerRe: Closing sockets in asynchronous TCP server Pin
Nicholas Butler8-Nov-08 1:01
sitebuilderNicholas Butler8-Nov-08 1:01 
GeneralRe: Closing sockets in asynchronous TCP server Pin
Metal768-Nov-08 1:10
Metal768-Nov-08 1:10 
GeneralRe: Closing sockets in asynchronous TCP server Pin
Nicholas Butler8-Nov-08 2:39
sitebuilderNicholas Butler8-Nov-08 2:39 
GeneralRe: Closing sockets in asynchronous TCP server Pin
Metal768-Nov-08 23:16
Metal768-Nov-08 23:16 
GeneralRe: Closing sockets in asynchronous TCP server Pin
Nicholas Butler9-Nov-08 3:41
sitebuilderNicholas Butler9-Nov-08 3:41 
AnswerRe: Closing sockets in asynchronous TCP server Pin
Mark Salsbery9-Nov-08 7:46
Mark Salsbery9-Nov-08 7:46 
GeneralRe: Closing sockets in asynchronous TCP server Pin
Metal769-Nov-08 9:09
Metal769-Nov-08 9:09 
Hi Mark, at the moment my code implements a similar (but even simpler) approach: the EndXxx calls are wrapped in a try...catch block, only catching the SocketException and ObjectDisposed exception which seem to be the ones which get "normally" fired when I force the shutdown on the socket. Something like:

try
{
    ... 
    // Starts receiving data
    _Socket.BeginReceive(_ReceiveBuffer,
                          0,
                         _ReceiveBuffer.Length,
                           SocketFlags.None,
                          new AsyncCallback(ClientReceiveCallback),
                           null);
    ...

}
catch (SocketException sockExc)
{
    // Process connection errors (e.g. connection closed by peer...)
    // by closing the socket 
    SocketClose((SocketError)sockExc.ErrorCode);
}
catch (ObjectDisposedException objDispExc)
{
    // Could fire during forced shutdown because 
    // socket is disposed while reception is pending
    // No need to close the socket here
}


Do you think it could also be a valid approach? I feel a little uneasy to use exceptions to implement normal programming logic, but I could not find a "clean" way to forcibly shutdown sockets, even searching in CodeProject articles!

Regards,
Andrea
GeneralRe: Closing sockets in asynchronous TCP server Pin
Mark Salsbery9-Nov-08 9:43
Mark Salsbery9-Nov-08 9:43 
QuestionCan i run windows application in Linux ? Pin
Krishnraj7-Nov-08 22:15
Krishnraj7-Nov-08 22:15 
AnswerRe: Can i run windows application in Linux ? Pin
Perspx7-Nov-08 22:33
Perspx7-Nov-08 22:33 
AnswerRe: Can i run windows application in Linux ? Pin
#realJSOP7-Nov-08 23:56
mve#realJSOP7-Nov-08 23:56 
GeneralRe: Can i run windows application in Linux ? Pin
Krishnraj1-Dec-08 1:46
Krishnraj1-Dec-08 1:46 
AnswerRe: Can i run windows application in Linux ? Pin
Dave Kreskowiak8-Nov-08 5:56
mveDave Kreskowiak8-Nov-08 5:56 
AnswerRe: Can i run windows application in Linux ? Pin
Atif Shahbaz8-Nov-08 6:11
Atif Shahbaz8-Nov-08 6:11 
AnswerRe: Can i run windows application in Linux ? Pin
Paul Conrad8-Nov-08 13:05
professionalPaul Conrad8-Nov-08 13:05 
QuestionAccess to soap WebServer without "Add Web Reference" Option Pin
Patricio Tapia7-Nov-08 22:01
Patricio Tapia7-Nov-08 22:01 
AnswerRe: Access to soap WebServer without "Add Web Reference" Option Pin
Wendelius8-Nov-08 1:05
mentorWendelius8-Nov-08 1:05 
QuestionBackgroundWorker and command line exe: what DoWork deals with? Pin
LordZoster7-Nov-08 20:52
LordZoster7-Nov-08 20:52 
AnswerRe: BackgroundWorker and command line exe: what DoWork deals with? Pin
#realJSOP7-Nov-08 23:58
mve#realJSOP7-Nov-08 23:58 
AnswerRe: BackgroundWorker and command line exe: what DoWork deals with? Pin
Giorgi Dalakishvili8-Nov-08 0:56
mentorGiorgi Dalakishvili8-Nov-08 0:56 
GeneralRe: BackgroundWorker and command line exe: what DoWork deals with? Pin
#realJSOP8-Nov-08 1:59
mve#realJSOP8-Nov-08 1:59 
GeneralRe: BackgroundWorker and command line exe: what DoWork deals with? Pin
LordZoster8-Nov-08 5:42
LordZoster8-Nov-08 5:42 
GeneralRe: BackgroundWorker and command line exe: what DoWork deals with? Pin
Dave Kreskowiak8-Nov-08 5:52
mveDave Kreskowiak8-Nov-08 5:52 
AnswerRe: BackgroundWorker and command line exe: what DoWork deals with? Pin
sph3rex8-Nov-08 5:46
sph3rex8-Nov-08 5:46 

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.