http隧道技术 过防火墙
客户端代码:
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>,这是什么原因???