我正在處理一個http代理應用程序,一切工作正常(客戶端可以連接到服務器並獲取內容),問題是既不是HTTP服務器或瀏覽器關閉TCP連接..我不是如果知道我在做是正確的,這裏是代碼:c#Socket Closing
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服務器,原因是我不想在發送數據之前編碼數據
你可以考慮用socket.Available初始化byte []。這段代碼並沒有給出你想要活躍的想法 – ray