我已经在c#中创建了一个简单的福彩12选5走势图和客户端程序。福彩12选5走势图将发送一个字符串数组给客户端,客户端将显示它,客户端将发送一个id给福彩12选5走势图,福彩12选5走势图将显示它。我的示例代码如下。当我运行它们时,我在福彩12选5走势图端遇到异常。我已在发生异常的行上标记了我的示例代码如下:
福彩12选5走势图:
客户:
我得到的例外是:
System.dll中发生了类型为'System.ObjectDisposedException'的未处理异常
附加信息:无法访问已处置的对象。 [/ XCODE]
福彩12选5走势图:
using System; using System.Collections.Generic; using System.Net; using System.Net.Sockets; using System.IO; using System.Text; using System.Xml.Serialization; namespace server { class Program { static void Main(string[] args) { TcpListener tcpListener = new TcpListener(IPAddress.Any, 1234); tcpListener.Start(); while (true) { TcpClient tcpClient = tcpListener.AcceptTcpClient(); byte[] data = new byte[1024]; NetworkStream ns = tcpClient.GetStream(); string[] arr1 = new string[] { "one", "two", "three" }; var serializer = new XmlSerializer(typeof(string[])); serializer.Serialize(tcpClient.GetStream(), arr1); tcpClient.Close(); int recv = ns.Read(data, 0, data.Length); //getting exception in this line string id = Encoding.ASCII.GetString(data, 0, recv); Console.WriteLine(id); } } } }
客户:
using System; using System.Collections.Generic; using System.Net; using System.Net.Sockets; using System.IO; using System.Text; using System.Xml.Serialization; namespace Client { class Program { static void Main(string[] args) { try { byte[] data = new byte[1024]; string stringData; TcpClient tcpClient = new TcpClient("127.0.0.1", 1234); NetworkStream ns = tcpClient.GetStream(); var serializer = new XmlSerializer(typeof(string[])); var stringArr = (string[])serializer.Deserialize(tcpClient.GetStream()); foreach (string s in stringArr) { Console.WriteLine(s); } string input = Console.ReadLine(); ns.Write(Encoding.ASCII.GetBytes(input), 0, input.Length); ns.Flush(); } catch (Exception e) { Console.Write(e.Message); } Console.Read(); } } }
我得到的例外是:
System.dll中发生了类型为'System.ObjectDisposedException'的未处理异常
附加信息:无法访问已处置的对象。 [/ XCODE]
由主持人最后编辑: