我正在尝试制作一个简单的 TCP 转发器作为 C# 中的练习。这是我用来将一个 TCP 流转发到另一个的函数:
public static void forward (NetworkStream stm1, NetworkStream stm2)
{
new Thread (new ThreadStart(() =>{
try{
while (true) {
int a = stm1.ReadByte ();
if (a > 0) stm2.WriteByte ((byte)a);
}
}catch{
stm1.Close();
stm2.Close();
}
})).Start ();
try {
while (true) {
int a = stm2.ReadByte ();
if (a > 0)
stm1.WriteByte ((byte)a);
}
} catch {
stm1.Close ();
stm2.Close ();
}
}
但是,这似乎无法正常工作。好吧,我可以通过它远程登录,但是它
- 使用大量的 CPU
- 似乎不是 8 位干净的,因为它拒绝通过 HTTP 正确加载图像。
我将如何正确实现这样的功能?