无法访问已释放的对象。 对象名:“System.Net.Sockets.Socket”。
无法访问已释放的对象。
对象名:“System.Net.Sockets.Socket”。 在 System.Net.Sockets.Socket.get_Available()
这是我的socket服务端发生的异常;
我的服务端socket是异步接收客户端数据,上面这段异常是在客户端连接服务端之后,不给服务端发送任何数据包的情况下
服务端检查到并关闭掉该客户端连接,试过先Shutdown(SocketShutdown.Both);然后再close();然而并没有用,
检查是一个定时器,每分钟检查一次,查检是一个for所有的客户端检查连接数据包情况;满足关闭条件则关闭客户端释放资源
,就是当我关闭客户端释放资源的时候,就发生错误哦就是close之后,readCallBack里面就发生这个异常了,我不知道要怎么做才能不让这个异常发生,希望知道的人能告诉我,在这里谢谢了
以下是接收回调函数
对象名:“System.Net.Sockets.Socket”。 在 System.Net.Sockets.Socket.get_Available()
这是我的socket服务端发生的异常;
我的服务端socket是异步接收客户端数据,上面这段异常是在客户端连接服务端之后,不给服务端发送任何数据包的情况下
服务端检查到并关闭掉该客户端连接,试过先Shutdown(SocketShutdown.Both);然后再close();然而并没有用,
检查是一个定时器,每分钟检查一次,查检是一个for所有的客户端检查连接数据包情况;满足关闭条件则关闭客户端释放资源
,就是当我关闭客户端释放资源的时候,就发生错误哦就是close之后,readCallBack里面就发生这个异常了,我不知道要怎么做才能不让这个异常发生,希望知道的人能告诉我,在这里谢谢了
以下是接收回调函数
public virtual void ReadCallback(IAsyncResult ar)
{
try
{
string _content = string.Empty;
SocketClientVO _state = (SocketClientVO)ar.AsyncState;
Socket _handler = _state.m_socket;
int _Available = _handler.Available;
byte[] RecievedData = new byte[_Available];
switch (_Available)
{
case 0:
Close(_state);
Logger.wirte("接收到0包" + _state.Code+"正常退出");
return;
default:
int curRcv = 0;
int hasRecv=0;
int left =_Available;
//_handler.EndReceive(
while (hasRecv < _Available)
{
curRcv = _handler.Receive(RecievedData, hasRecv, left, SocketFlags.None);
left -= curRcv;
hasRecv += curRcv;
}
break;
}
try
{
byte[] temp = new byte[0];
_handler.BeginReceive(temp, 0, 0, 0, new AsyncCallback(ReadCallback), _state);//继续读取下一个数据
}
catch
{
this.Close(_state);
}
}
catch (Exception ex)
{
Logger.wirte(ex);
}
}
...全文
相关推荐
C#socket通讯两个最经典错误解决方案
对象名:“System.Net.Sockets.Socket”**问题现场**在实际编程过程中,有时会出现以下异常:“无法访问已释放的对象。
vb.net socket
在VB.NET中,我们可以利用System.Net.Sockets命名空间中的类来创建和管理Socket对象。
在VB.NET下利用Socket实现简单的字符串发送接收程序
Socket编程是网络通信的核心部分,它允许两个或多个应用程序通过Internet进行通信。在VB.NET中,我们可以使用System.Net.Sockets命名空间中的类来实现Socket通信。
asp.net Visual C#.Net 网络程序开发-Socket篇
Socket编程在.NET Framework中是通过System.Net.Sockets命名空间提供的,这个命名空间包含了对Windows Sockets (Winsock)接口的托管实现,使得C#.
C#.Net网络程序开发-Socket篇
Microsoft.Net Framework通过其System.Net和System.Net.Sockets命名空间提供了丰富的类,使得开发者可以方便地创建各种网络应用程序。


