客户端代码:
 post = sInt[0];//数据<data>dssdsd</data>
            postLength = post.Length;
            if ((post != null) && postLength > 0)
            {
                http = "POST / HTTP/1.1\r\nAccept: */*\r\nAccept-Language: zh-cn\r\nContent-Type: application/x-www-form-urlencoded\r\nUA-CPU: x86\r\nAccept-Encoding: gzip, deflate\r\nUser-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; InfoPath.2)\r\nHost: 192.*.*.*\r\n\r\n";
                byte[] myWriteBuffer = System.Text.Encoding.ASCII.GetBytes(http);
                netStream.Write(myWriteBuffer, 0, myWriteBuffer.Length);
            }
            do
            {
                //myCompleteMessage.Remove(0, myCompleteMessage.Length);
                numberOfBytesRead = netStream.Read(myReadBuffer, 0, myReadBuffer.Length);
                myCompleteMessage.AppendFormat("{0}", System.Text.Encoding.UTF8 .GetString(myReadBuffer, 0, numberOfBytesRead));
            }
            while (netStream.DataAvailable);服务器端代码:
do
            {
                try
                {
                    numberOfBytesRead = client.Read(myReadBuffer, 0, myReadBuffer.Length);                    http = System.Text.Encoding.ASCII.GetString(myReadBuffer);
                }
                catch (Exception ee)
                {
                    throw ee;
                }
                //numberOfBytesRead = client.Read(myReadBuffer, 0, myReadBuffer.Length);
            } while (client.DataAvailable);         byte[] myWriteBuffer = System.Text.Encoding.ASCII.GetBytes("<ok></ok>");
            netStream.Write(myWriteBuffer, 0, myWriteBuffer.Length);客户端http post头能到达服务器端,但是客户端读取不到服务器端返回的<ok></ok>,这是什么原因???

解决方案 »

  1.   

    单不说代码 你客户端能POSt到服务器`说明已经通了` 然后你把数据再POST给服务器不就行了
    你在服务器接收信息的代码那里加个语句`把收到的信息放到一个文本里面`
    在客户端POST到服务器的时候也把信息放到另一个文本里`你比较一下数据看看有什么不同
      

  2.   

    客户端post 服务器端后  服务器端接收到 返回一个ok给客户端 客户端接收到ok后在发送data给服务器端, 但是客户端接收到ok后在data发送不到服务器端
      

  3.   

    服务器端返回http头没有响应码,服务器返回也要加http头+ok 才能发送到客户端,而且返回后的Connection: close  Proxy-Connection: close 无法连接上啊 
      

  4.   

    这个技术是近期才出现的新事物,并且已经被用到各种黑客软件之中,比较成熟的有远程控制软件“网络神偷”和“灰鸽子”。 
     这是国内两个很有代表性的运用“http隧道穿越原理”而制作的软件,用该类型软件可以穿透防火墙,不受端口的限制。 一般防火墙为了安全起见,都只开80和其他一些常用的端口,这样的话,那些一般的基于tcp/ip客户端和服务端的木马就不能通过防火墙和外界发生联系,特别是在内网之中,但是经过特殊处理的ip封包可以伪装成http封包,这样防火墙就认为其是合法的http数据包,就会放行,这样在木马的接收端,软件再将伪装过的ip封包还原出来,取出其中有用的数据,从而达到穿越防火墙端口设置的限制。 该类型软件具有很大的欺骗性,所以不要认为设置了端口限制的防火墙就一定很安全了。利用HTTP协议的缺陷来实现对防火墙的渗透,或者说现有的一些HTTP隧道技术的实现,是基于防火墙在对HTTP协议的报文进行识别与过滤时,往往只对其诸如POST、GET等命令的头进行识别,而放行其后的所有报文。摘自百度知道:http://zhidao.baidu.com/question/6479422.html
      

  5.   

    服务器端接收到客户端发的http头是
    post / HTTP/1.1
    Accept: */*
    Accept-Language: zh-cn
    UA-CPU: x86
    Accept-Encoding: gzip, deflate
    User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; InfoPath.2)
    Host: 198.*.*.*
    Connection: Keep-Alive客户端接收服务器端发的http头是:
    HTTP/1.1 500 ( 当前操作所需的 Windows Internet 扩展应用程序出现软件错误。  )
    Via: 1.1 GNET_ISA
    Connection: close
    Proxy-Connection: close
    Pragma: no-cache
    Cache-Control: no-cache
    Content-Type: text/html
    这是什么原因???