我跟客户那边进行传输接口测试,他发送报文过来我这边,然后我接收响应返回,客户那边刚发过来的前几条数据还能够接收,但再多发就收不到了,只显示有新IP请求,但不显示接收的数据了,设置断点调试代码也执行不下去,就一直卡在那里,请问各位大神这是什么问题? 有什么办法可以解决吗?这个是客户那边发过来的报文
<?xml version="1.0" encoding="gb2312" ?>
<xmlSLZR>
  <funcode>104</funcode>
  <hy_id>0941</hy_id>
  <hydj>350</hydj>
  <sqtime>88033</sqtime>
</xmlSLZR>
这边是我接收显示的数据16:26:30  服务启动
16:26:33  有新请求,IP:192.168.1.128
16:26:33  接收到的数据:
<?xml version="1.0" encoding="gb2312" ?>
<xmlSLZR>
  <funcode>104</funcode>
  <hy_id>0941</hy_id>
  <hydj>350</hydj>
  <sqtime>88033</sqtime>
</xmlSLZR>
16:26:35  有新请求,IP:192.168.1.128
16:28:20  有新请求,IP:192.168.1.128
16:36:12  有新请求,IP:192.168.1.128这里就一直显示有新请求,但是不显示接收到的数据了
还有我想应该不是网速的问题,因为我自己用局域网来发送和接收,发多了之后也是这样,只显示有新请求,不显示接收数据,一直卡在那里

解决方案 »

  1.   

                    GetXml.LoadXml(msg);//把字符串装载到XML文档里面
    //根据命令处理数据
                    #endregion

                    #region 将回答发送给终端方
                    Byte[] buffer = System.Text.Encoding.UTF8.GetBytes(answer);
    //HTTP头
    string responseText = e.MyProccess.http_protocol_versionstring + " 200 OK\r\n";//HTTP header
                    responseText += "Content-Type: text/xml;charset=gb2312\r\n";        // 指定文件类型,编码 
                    responseText += "Content-Length: " + buffer.Length.ToString() + "\r\n";  //指定发送数据大小
                    responseText += "Connection: close\r\n";  //指示客户端关闭连接
                    responseText += "\r\n";  //结束HTTP头 //用字符串的方式写入
                    e.MyProccess.outputStream.Write(responseText);//写HTTP头
                    e.MyProccess.outputStream.Write(answer);//写数据
                    #endregion
                }
                catch (Exception exerr)
                {
                    WriteText("错误提示:\r\n" + "出现异常错误, 错误为(" + exerr.Message + ")"); 
                }        }private void frmSend_Load(object sender, EventArgs e)
            {
                config = new Config();
                new frmSc();
                sv = new MyHttpServer(int.Parse(config.Http_Port));            thread = new Thread(new ThreadStart(sv.listen));
                thread.IsBackground = true;
                thread.Start();            //新连接
                sv.acceptClientEvent += new MyHttpServerEventHandler(sv_acceptClientEvent);
                //处理过程
                sv.postProccessEvent += new PostProccessEventHandler(sv_postProccessEvent);
                //错误
                sv.proccessFailureEvent += new MyHttpServerEventHandler(sv_proccessFailureEvent);            WriteText("监听服务和发送服务已经启动");
            }
      

  2.   

    我这里面的代码有什么问题吗?void sv_postProccessEvent(object sender, PostProccessEventArgs e)
            {
                try
                {
                    string msg = e.Sr.ReadToEnd();//接收到的数据
                    WriteText("接收到的数据:\r\n" + msg);
                    //return;
                    XmlDocument GetXml = new XmlDocument(); 
                    GetXml.LoadXml(msg);//把字符串装载到XML文档里面
    //根据命令处理数据
                    #endregion
    “中间这部分是处理数据的代码(省略)”                #region 将回答发送给终端方
                    Byte[] buffer = System.Text.Encoding.UTF8.GetBytes(answer);
    //HTTP头
    string responseText = e.MyProccess.http_protocol_versionstring + " 200 OK\r\n";//HTTP header
                    responseText += "Content-Type: text/xml;charset=gb2312\r\n";        // 指定文件类型,编码 
                    responseText += "Content-Length: " + buffer.Length.ToString() + "\r\n";  //指定发送数据大小
                    responseText += "Connection: close\r\n";  //指示客户端关闭连接
                    responseText += "\r\n";  //结束HTTP头 //用字符串的方式写入
                    e.MyProccess.outputStream.Write(responseText);//写HTTP头
                    e.MyProccess.outputStream.Write(answer);//写数据
                    #endregion
                }
                catch (Exception exerr)
                {
                    WriteText("错误提示:\r\n" + "出现异常错误, 错误为(" + exerr.Message + ")"); 
                }        }private void frmSend_Load(object sender, EventArgs e)
            {
                config = new Config();
                new frmSc();
                sv = new MyHttpServer(int.Parse(config.Http_Port));            thread = new Thread(new ThreadStart(sv.listen));
                thread.IsBackground = true;
                thread.Start();            //新连接
                sv.acceptClientEvent += new MyHttpServerEventHandler(sv_acceptClientEvent);
                //处理过程
                sv.postProccessEvent += new PostProccessEventHandler(sv_postProccessEvent);
                //错误
                sv.proccessFailureEvent += new MyHttpServerEventHandler(sv_proccessFailureEvent);            WriteText("监听服务和发送服务已经启动");
            }