私は http プロキシ アプリケーションで作業しています。すべて正常に動作しています (クライアントはサーバーに接続してコンテンツを取得できます)。問題は、HTTP サーバーまたはブラウザーが TCP 接続を閉じることではありません。そうです、ここにコードがあります:
while (tcp_link.Connected && _tcp.Connected && !ioError)
{
try
{
Thread.Sleep(100);
if (streamLink.DataAvailable)
{
byte[] l_buffer = new byte[10000];
int l_read = streamLink.Read(l_buffer, 0, l_buffer.Length);
byte[] l_data = new byte[l_read];
Array.Copy(l_buffer, l_data, l_data.Length);
_stream.Write(l_data, 0, l_data.Length);
}
if (_stream.DataAvailable)
{
byte[] c_buffer = new byte[10500];
int c_read = _stream.Read(c_buffer, 0, c_buffer.Length);
byte[] c_data = new byte[c_read];
Array.Copy(c_buffer, c_data, c_data.Length);
streamLink.Write(c_data, 0, c_data.Length);
}
}
catch
{
ioError = true;
}
}
私は両側(プロキシクライアントとプロキシサーバー)で同じコードを持っています
注:ブラウザはプロキシクライアント(同じコンピュータ上にあります)に接続し、プロキシクライアントはプロキシサーバーに接続し、明らかにプロキシサーバーはhttpサーバーに接続します。理由は、データを送信する前にエンコードしたくないからです