客户端:            try
            {
                TcpClient client = new TcpClient();
                try
                {
                    client.Connect("127.0.0.1", 8500); // 与服务器连接
                }
                catch (Exception ex) { Console.WriteLine(ex.Message); return; }
                // 打印连接到的服务端信息
                t.AppendText("Client Connected!Client:" + client.Client.LocalEndPoint + " <-- Server:" + client.Client.RemoteEndPoint);
                //Hour_Result[] hr = dbc.StreamCount(rili + (Convert.ToInt32(ch) - 1) + "0000",rili+Convert.ToInt32(ch) + "0000");
                Hour_Result[] hr = dbc.StreamCount("20100101010000", "20100101020000");
                for (int i = 0; i < hr.Length; i++)
                {
                    string sendStr = hr[i].SiteCode + "," + hr[i].Ip + "," + hr[i].Date + "," + hr[i].Result + "," + hr[i].Hour + ";";
                    NetworkStream streamToServer = client.GetStream();
                    byte[] buffer = Encoding.Unicode.GetBytes(sendStr); // 获得缓存
                    streamToServer.Write(buffer, 0, buffer.Length); // 发往服务器
                }
                t.AppendText("\n");
            }
            catch (Exception er) 
            {
                return;
            }服务端: IPAddress ip = IPAddress.Parse("127.0.0.1");
                int port = getBindPort();
                listener = new TcpListener(ip, 8500);
                listener.Server.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
                Listener.Start(); // 开始侦听
                sh.getConnection();
                do
                {
                    // 获取一个连接,中断方法 
                    TcpClient remoteclient = listener.AcceptTcpClient();
                    // 打印连接到的客户端信息
                    t.AppendText("client connected!server:" + remoteclient.Client.LocalEndPoint + ",client:" + remoteclient.Client.RemoteEndPoint + "\n");
                    // 获得流,并写入buffer中 
                    NetworkStream streamtoclient = remoteclient.GetStream();
                    byte[] buffer = new byte[BufferSize];
                    int bytesread = streamtoclient.Read(buffer, 0, BufferSize);
                    // 获得请求的字符串
                    string msg = Encoding.Unicode.GetString(buffer, 0, bytesread);
                    DataObj da = new DataObj();
                    da = dc.getDataObject(dc.getStr(msg)[0]);
                    t.AppendText("sitecode=" + da.Sitecode + "时间:" + time.ToString("yyyy-mm-dd") + "[" + time.ToString("hh:mm:ss") + "]");
                    if (sh.insertStream(da)) { t.AppendText("插入数据成功\n"); } else { t.AppendText("插入数据失败\n"); }
                } while (true);现在不知道怎么的不能从连接中读出数据啦,帮忙解决下,谢谢啦

解决方案 »

  1.   

    Encoding.Unicode.GetBytes尝试着换另外一种解码方式试试看。
      

  2.   

     
            private delegate void appendtextTOt(string msg);
            //显示信息的方法
            private void displaymsg(string msg)
            {
                if (t.InvokeRequired == true)
                {
                    Invoke(new appendtextTOt(displaymsg), new object[] { msg });
                }
                else
                {
                    t.Appendtext(msg);
                }
            }
    用displaymsg(msg);替换你的t.Appendtext("..........");msg代表“.........”