Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 通过套接字发送流_C#_Sockets_Stream - Fatal编程技术网

C# 通过套接字发送流

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

很抱歉出现这种类型的问题,但我很快会就此编写一个测试,对以下可能的问题没有任何线索: web服务器使用以下c#代码片段将静态web对象写入套接字对象“sock”。代码对哪种类型的web对象有效,而对哪种类型的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();
...
什么是“web对象”?我想是你的老师编造的。我想这意味着“文件”

无论如何,如果内容不能准确地表示为ASCII,则此操作将失败

根本不需要通读课文。只需复制字节:

f.CopyTo(new NetworkStream(sock));
任何其他未修改的复制字节的方法也可以


请注意,您需要使用将资源(如所有这些流和套接字)包装到
中,以避免泄漏。

数据将使用Ascii编码,这意味着将自动从结果中筛选不可打印的字符。该文件的每行末尾还必须有标准的windows返回。对于流,您必须在使用while循环之前读取整个文件,因为流将以块的形式读取,并且在读取整个文件之前可能会得到null。null表示您到达了流的结尾,而不是数据的结尾。