日期:2014-05-16  浏览次数:20765 次

关于windows8客户端与服务端通信的问题
要写个程序 客户端是windows8 Metro应用 打算用streamsocket和桌面客户端通信
桌面客户端是个winform程序  用tcplistener与tcpclient 和客户端通信
想要实验个功能  就是服务端保持监听状态,客户端可以点一个按钮连接服务端,
服务端监听到连接后可以返回客户端一个字符串,然后断开连接,
客户端收到这个字符串之后也断开连接,
第一次点客户端的连接按钮好好的,第二次的时候就出现了个异常
下面是我的代码
服务端主要代码:


//这段代码是在一个异步方法中 其中m_tcpListener是一个TCPListener的实例  
        while (true)
                {
                    TcpClient m_tcp = await m_tcpListener.AcceptTcpClientAsync();       
                    NetworkStream ns = m_tcp.GetStream();
                    string Nowdate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff");
                    string s = "消息过去了啊!!!!!!" + Nowdate;
                    Byte[] sbyt = Encoding.UTF8.GetBytes(s);
                    uint len = (uint)sbyt.Length;
                        ns.Write(BitConverter.GetBytes(len), 0, sizeof(uint));
                        ns.Write(sbyt, 0, sbyt.Length);
                        ns.Close();
                        try
                        { 
                            m_tcp.Close();
                            this._textBox.Text = "Cut Successd";
                        }
                        catch (Exception)
                        {

                        }
                }

客户端代码:
  
//_SR是一个streamsocket 实例
HostName hServer = new HostName