我有一个 StateObject 类,用于存储来自客户端和服务器的数据。
这是代码:
public class StateObject : IDisposable
{
public StateObject()
{
}
public String serviceName = ConfigurationManager.AppSettings["ServiceName"].ToString().Trim(); //Holds the service name
public Socket clientSocket; //socket for communication with the client
public int id; //client id (A running sequence to keep track of StateObjects)
public string leaseId; //holds the leaseId that is used to communicate with the server
public bool isLeaseIdValid = false;
public string requestQuery = string.Empty;
public IPEndPoint serverEP;
public Socket serverSocket; //Socket for communication with the server
public static int BUFFER_SIZE = Convert.ToInt32(ConfigurationManager.AppSettings["BufferSize"].ToString().Trim()); //Get the buffer size from the state object
public byte[] clientReadBuffer = new byte[BUFFER_SIZE]; // Receive clientReadBuffer.
public byte[] serverReadBuffer = new byte[BUFFER_SIZE];
public int clientNumBytes;
public byte[] clientSendBuffer = new byte[BUFFER_SIZE];
public int serverNumBytes;
public byte[] serverSendBuffer = new byte[BUFFER_SIZE];
public bool isShutdown = false;
public Socket serverSocketPort80; //Socket for communication with the server
public bool ConnectedToPort80 = false; //initially set to false
public ConnectionObject connectionObject;
#region Dispose implementation
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
protected virtual void Dispose(bool disposing)
{
if (disposing)
{
connectionObject.Dispose();
}
}
~StateObject()
{
Dispose(false);
}
#endregion
}
如何正确处理此类并清除字节数组使用的内存?字节数组用于在套接字通信中存储发送/接收的消息。