2015-01-24 3 views
-1

Я разрабатываю приложение для продажи билетов, клиент проверяет поездку и отправляет через сетевой поток на сервер, затем он возвращается клиенту, если эта поездка была найдена или нет, например: если поездка не была найдена , он показывает, что клиентская поездка не найдена, но если я выберу другое место поездки и снова нажмите кнопку checktrip, клиент перестанет работать.Архитектура клиента/сервера

Здесь ниже, код проверки поездки в клиенте:

 try 
     { 

       NetworkStream ns = client.GetStream(); 
       StreamWriter sw = new StreamWriter(ns); 
       StreamReader sr = new StreamReader(ns); 

       sw.WriteLine(comboBox1.Text); 
       sw.WriteLine(comboBox2.Text); 
       sw.WriteLine(dateTimePicker1.Text); 
       sw.WriteLine(dateTimePicker2.Text); 

       sw.Flush(); 
       ns.Flush(); 
       string x = sr.ReadLine();//freeze point trying abother reservation. 
       //MessageBox.Show("Value of x = "+x); 
       if (x.Equals("yes")) 
       { 
        MessageBox.Show("Trip Found"); 
        proceedBtn.Enabled = true; 

       } 
       else 
       { 
        MessageBox.Show("Trip Not Found\nPlease Try another"); 

       } 



     } 
+0

, но если поездка была на сервере, она вернется к клиенту, тогда клиент может перейти к купите билет, но если я вернусь, чтобы сделать еще одну бронь, и нажмите на вышеуказанный код (внутри кнопки checktrip), клиент перестанет работать, но не сработает. Я попытался поместить его в то время (истинный) метод, но ничего. – Mrfrog

+0

код продажи билетов в серверной программе. – Mrfrog

ответ

0

ли вы закрываете потоки? С какой именно ошибкой вы сталкиваетесь?

//your try block ends here... 
catch(Exception ex){MessageBox.Show(ex.Message);} 
finally 
{ 
    sr.Close(); sw.Close(); ns.Close(); 
} 

EDIT: Если закрыть потоки, вы должны заново создать свой объект TcpClient и подключите снова. Или если вы не хотите этого делать, не закрывайте потоки, подключение должно быть сохранено

+0

Я закрываю его, но в другом месте внутри кнопки отключается клиент. Благодарю вас. – Mrfrog

+0

Попробуйте отладить его и выяснить, какой код вызывает у вашего клиента неисправность. –

+0

Спасибо, сэр, я положил ns.close() и sw.close() и sr.close() в итоге, он больше не разбивается, но дает мне исключение. «Операция не разрешена для несвязанных сокетов». В System.Net.Sockets.TcpClient.GetStream(); – Mrfrog

Смежные вопросы