I have created a simple server and client program in c#. The server will send a string array to the client and the client will display it and the client will sent an id to server and the server will display it. My sample code is given below. When I run them, I get an exception in the server side. I have marked the line in which I am getting the exception.My sample code is given below:
Server:
Client:
The exception I am getting is:
An unhandled exception of type 'System.ObjectDisposedException' occurred in System.dll
Additional information: Cannot access a disposed object.[/XCODE]
Server:
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); } } } }
Client:
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(); } } }
The exception I am getting is:
An unhandled exception of type 'System.ObjectDisposedException' occurred in System.dll
Additional information: Cannot access a disposed object.[/XCODE]
Last edited by a moderator: