c# - 通过套接字发送流

标签 c# sockets stream

抱歉,这种问题很严重,但我很快就对此进行了测试,对以下可能的问题一无所知:
Web服务器使用以下C#代码片段将静态Web对象写入套接字对象“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();
...

最佳答案

什么是“网络对象”?我想你的老师补了那个学期。我认为这意味着"file"。

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

根本不需要遍历文本。只需复制字节:

f.CopyTo(new NetworkStream(sock));

任何其他复制未修改字节的方法也都可以。

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

关于c# - 通过套接字发送流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34705630/

相关文章:

java - 套接字通信: Thread hangs

c# - 如何实现惰性流 block 枚举器?

c# - 带有 TCP 端点的 JMeter 和 WCF

c# - 有没有办法跟踪 react 命令何时完成执行?

java - TCP 扫描 : Unexpected Socket Exceptions

javascript - 如何在 node.js 中读取整个文本流?

javascript - 使用 Bacon.JS 进行速率限制

c# - 如何重置 dispatcherTimer?

c# - 任务以及如何正确使用它们 C#

java - 如何将数据从 Java 客户端发送到 C++ 服务器?