C# 通过套接字发送流
很抱歉出现这种类型的问题,但我很快会就此编写一个测试,对以下可能的问题没有任何线索: web服务器使用以下c#代码片段将静态web对象写入套接字对象“sock”。代码对哪种类型的web对象有效,而对哪种类型的web对象无效?使用什么.Net类可以改进代码C# 通过套接字发送流,c#,sockets,stream,C#,Sockets,Stream,很抱歉出现这种类型的问题,但我很快会就此编写一个测试,对以下可能的问题没有任何线索: web服务器使用以下c#代码片段将静态web对象写入套接字对象“sock”。代码对哪种类型的web对象有效,而对哪种类型的web对象无效?使用什么.Net类可以改进代码 ... f = new FileStream(pathName, FileMode.Open, FileAccess.Read); StreamReader sReader = new StreamReader(f); sReader.Base
...
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();
...
什么是“web对象”?我想是你的老师编造的。我想这意味着“文件”
无论如何,如果内容不能准确地表示为ASCII,则此操作将失败
根本不需要通读课文。只需复制字节:
f.CopyTo(new NetworkStream(sock));
任何其他未修改的复制字节的方法也可以
请注意,您需要使用将资源(如所有这些流和套接字)包装到
中,以避免泄漏。数据将使用Ascii编码,这意味着将自动从结果中筛选不可打印的字符。该文件的每行末尾还必须有标准的windows返回。对于流,您必须在使用while循环之前读取整个文件,因为流将以块的形式读取,并且在读取整个文件之前可能会得到null。null表示您到达了流的结尾,而不是数据的结尾。