我有一个简单的TCP客户端和侦听器代码。我想传递文件名以及文件数据。有没有什么办法可以将文件名与文件数据一起发送,并单独从网络流中读取文件名而不会破坏文件数据?从网络流读取数据
Q
从网络流读取数据
0
A
回答
0
这是发送不应该损坏的文件名和数据的一种方式。如果使用序列化,则不必分别手动编写和读取文件名和内容,只需将其发送并将其作为单个对象读取,然后让框架处理序列化和反序列化各个属性。
[SerializableAttribute]
class Data
{
public string FileName;
public byte[] FileData;
}
客户
string filePath = @"c:\temp\myfile.txt";
TcpClient client = new TcpClient();
client.Connect("localhost", 8888);
Data data = new Data();
data.FileName = Path.GetFileName(filePath);
data.FileData = File.ReadAllBytes(filePath);
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(client.GetStream(), data);
client.Close();
服务器
TcpListener listener = new TcpListener(IPAddress.Loopback, 8888);
listener.Start();
TcpClient client = listener.AcceptTcpClient();
BinaryFormatter formatter = new BinaryFormatter();
Data data = (Data)formatter.Deserialize(client.GetStream());
+0
这工作Weyland。非常感谢 – user2160880
+0
当我尝试在转移一些200 MB后在不同域之间传输时,我得到“现有连接被强制关闭”。防火墙全部禁用。我正在关闭所有的文件流,套接字等 – user2160880
相关问题
- 1. 从套接字读取网络流
- 2. 从TCP侦听器中的网络流中读取数据
- 3. 从网络流中读取数据包碎片
- 4. 从网络流中读取而不丢失数据
- 5. 读取网络流量
- 6. 如何等待网络数据流读取数据?
- 7. 从网络流中读取具有大量数据包的异步数据
- 8. 网络流量 - 读取数量每个读取
- 9. 如何读取Java中的网络流数据(协议包)
- 10. C#网络流在读取之后仍然包含旧数据
- 11. 所有数据写入前的网络流读取
- 12. iOS从网络读取txt
- 13. 为HTTP请求读取网络流
- 14. 如何在scala中读取网络流?
- 15. 如何从数据流读取数据
- 16. 从C++中的串行端口快速读取常量数据流。网络
- 17. 从网页读取数据
- 18. 阅读异步网络流
- 19. C#代码在试图从网络流中读取时挂起
- 20. 从XML网络流中读取整个元素
- 21. 从C#读取ID3标签从网络#
- 22. 如果我从一个流读取WebRequest.GetResponseStream我会从内存或网络阅读
- 23. 数据从网络
- 24. 决定何时读取网络数据VS时从缓存
- 25. 从python网络接口读取和处理数据包
- 26. 如何处理从网络读取的缓冲数据?
- 27. UDP:从所有网络接口读取数据
- 28. 从网络流中提取信息
- 29. 从onMessage读取完整数据流
- 30. 从扳手读取谷歌数据流
原始TCP是我会为这样的要求的最后一件事。你想达到什么目的? –
我只是想传输文件。一切工作正常,如果我先冲洗文件名,然后是实际data.But如果我尝试并发,说2在同一时间传输一些文件是任务数据 – user2160880