无法访问已释放的对象.在c客户端&;服务器
本文关键字:客户端 amp 服务器 对象 访问 释放 | 更新日期: 2023-09-27 18:29:14
我已经解决了无法访问已处理对象的问题。在c客户端&服务器
以下是我使用的要点。
- 用于范围限制
- 我不是封闭套接字对象
类客户端{static void Main(string[]args){Console.Title="客户端聊天";byte[]字节=新字节[1024];//用于传入数据的数据缓冲区字符串数据=空;
// connect to a Remote device
try
{
// Establish the remote end point for the socket
IPHostEntry ipHost = Dns.Resolve("localhost");
IPAddress ipAddr = ipHost.AddressList[0];
IPEndPoint ipEndPoint = new IPEndPoint(ipAddr, 95);
using (Socket Socketsender = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp))
{
Socketsender.Connect(ipEndPoint);
Console.WriteLine("'n'n'tSocket Connecting To Java Server...." + Socketsender.RemoteEndPoint.ToString());
while (true)
{
Console.Write("'n'n'tClient::");
string theMessage = Console.ReadLine();
byte[] msg = Encoding.ASCII.GetBytes(theMessage);
// Send the data through the socket
int bytesSent = Socketsender.Send(msg);
//Recieved from Java Server Message
int bytesRec = Socketsender.Receive(bytes);
Console.WriteLine("'n'n'tJava Server Says:: {0}", Encoding.ASCII.GetString(bytes, 0, bytesRec));
}
//Socketsender.Close();
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
Console.ReadLine();
}
}
在循环外创建Socket处理程序对象,并在循环内关闭它。第二次遍历循环时,您看到的是一个已经关闭的Socket对象
在完成Socket之前不要关闭它。