Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > передача массива через сокет


Автор: Antiform 14.11.2008, 13:54
Есть сервер: 

            
Код

FileInfo[] spisokfile = directoriya.GetFiles(); // надо переправить этот массив

IPHostEntry ipHost = Dns.Resolve("localhost");
IPAddress ipAddr = ipHost.AddressList[0];
IPEndPoint ipEndPoint = new IPEndPoint(ipAddr, 9999)
Socket sListener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

 sListener.Bind(ipEndPoint);
 sListener.Listen(10);
 Socket spisok = sListener.Accept();
  if (spisok.Connected) { Console.WriteLine("client connected"); }
               
 BinaryFormatter Bformater = new BinaryFormatter();
 NetworkStream Nstream = new NetworkStream(sListener);
 byte[] Fbytes = Bformater.Serialize(Nstream, spisokfile);
 // по идее должна осуществится отправка
 spisok.Shutdown(SocketShutdown.Both);
 spisok.Close();


есть клиент:
 
Код

TcpClient client = new TcpClient();
client.Connect("localhost", 9999);
NetworkStream Ntream = client.GetStream();
BinaryFormatter Bformater = new BinaryFormatter();
FileInfo[] spisokfile = (FileInfo[])Bformater.Deserialize(Nstream);
// по идее должно приняться, а он пишет мол сервер разорвал соединение
stream.Close();
client.Close();


Чувствую чего-то не хватает, подскажите знающие человеки!

Автор: Antiform 15.11.2008, 11:28
NetworkStream Nstream = new NetworkStream(sListener); <- здесь не sListener должен быть а spisok!!!! Вот она не внимательность ))) теперь все зашибись работает.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)