C# 关闭Socket连接方法解析
这个方法是用来关闭一个Socket连接的。当连接出现异常时,会触发'CloseEventArgs'事件,并将异常信息传递给事件处理程序。如果连接还处于连接状态,会通过Socket的'Disconnect'方法关闭连接。如果关闭过程中出现异常,也会将异常信息传递给事件处理程序。最后,将'CloseEvent'事件处理程序赋值给'mCloseEventHandler',如果存在该事件处理程序,就将Socket和事件参数传递给它。
private void CloseSocket(Exception iRException)
{
CloseEventArgs iEventArgs = new CloseEventArgs
{
Exception = iRException
};
try
{
if (this.mClientSocket.Connected)
{
this.mClientSocket.Disconnect(true);
}
}
catch (Exception exception)
{
iEventArgs.Exception = exception;
}
finally
{
this.mCloseEventHandler = CloseEvent;
if (this.mCloseEventHandler != null)
{
this.mCloseEventHandler(this.mClientSocket, iEventArgs);
}
}
}
代码解析:
CloseSocket(Exception iRException)方法接收一个异常参数,用于记录连接过程中发生的异常。- 创建
CloseEventArgs对象,将传入的异常信息存储在Exception属性中。 - 使用
try...catch...finally块处理连接关闭操作。 - 在
try块中,判断连接是否已建立,如果已建立则调用Disconnect方法断开连接。 - 在
catch块中,如果关闭连接过程中出现异常,则将异常信息存储在CloseEventArgs的Exception属性中。 - 在
finally块中,将CloseEvent事件处理程序赋值给mCloseEventHandler,并判断是否存在事件处理程序,如果存在则将 Socket 和事件参数传递给它。
原文地址: https://www.cveoy.top/t/topic/nW5X 著作权归作者所有。请勿转载和采集!