【问题标题】:Client/server architecture客户端/服务器架构
【发布时间】:2015-01-24 15:28:01
【问题描述】:

我正在开发一个票务应用程序,客户端检查旅行并通过网络流发送到服务器,然后如果找到该旅行,它将返回给客户端,例如:如果没有找到旅行,它显示在未找到客户行程,但如果我选择另一个行程地点,然后再次单击 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");

                }



        }

【问题讨论】:

  • 但是,如果一个行程在服务器里,它会返回找到给客户端,然后客户端可以继续买票,但如果我回去重新预订,然后点击上面代码(在 checktrip 按钮内),客户端停止工作,但不会崩溃。我试图把它放在一个 while(true) 方法中,但没有。
  • 服务器程序内的票务代码。

标签: c# .net network-programming


【解决方案1】:

你会关闭你的信息流吗?您遇到了什么确切的错误?

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

编辑:如果您关闭您的流,您应该重新创建您的 TcpClient 对象并再次连接。或者如果您不想这样做,请不要关闭流,连接应该保持活动状态

【讨论】:

  • 我正在关闭它,但在另一个地方,在客户端的按钮内部断开连接。还是谢谢你。
  • 尝试调试它并找出导致您的客户端出现故障的代码。
  • 谢谢先生,好吧,我把 ns.close() 和 sw.close() 和 sr.close() 放在最后,它不再崩溃了,但它给了我一个例外. System.Net.Sockets.TcpClient.GetStream() 处的“非连接套接字上不允许该操作”;
猜你喜欢
  • 2012-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-02
  • 2011-07-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多