通过套接字发送流

时间:2016-01-10 12:58:10

标签: c# sockets stream

很抱歉这类问题,但我很快就写了一个测试,对以下可能的问题一无所知: Web服务器使用以下c#-code片段将静态Web对象写入socket-object' sock'。代码在哪种类型的Web对象中起作用,哪些不起作用?用什么.Net类可以改进代码?

...
f = new FileStream(pathName, FileMode.Open, FileAccess.Read);
StreamReader sReader = new StreamReader(f);
sReader.BaseStream.Seek(0, SeekOrigin.Begin);
String s = sReader.ReadlLine();
while (s != null)
{
  sock.Send(System.Text.Encoding.ASCII.GetBytes(s));
  s = sReader.ReadLine();
}
sReader.Close();
...

1 个答案:

答案 0 :(得分:1)

"网络对象&#34 ;?我想你的老师已经完成了这个术语。我认为这意味着"文件"。

无论如何,如果内容不能完全表示为ASCII,则会失败。

根本没有必要通过文字。只需复制字节:

f.CopyTo(new NetworkStream(sock));

复制未经修改的字节的任何其他方法也没关系。

请注意,您需要将所有这些流和套接字等资源包装到using中,以免泄漏。