【发布时间】:2012-02-03 13:43:55
【问题描述】:
我编写了一个客户端-服务器应用程序。我有一些数据结构想通过网络从客户端发送到服务器。我将它们呈现为确定大小的字节数组。服务器和客户端都知道这种结构。
我的目标是发送一组结构并等待服务器确认它们已被接收并正确保存..
我的想法是创建一个简单的代码。
客户端:
- 连接到服务器;
- 准备结构列表;
- 在循环中使用 Stream.Write(...) 方法将它们作为字节数组发送到网络。然后 Flush();
- 等待服务器响应它可以节省多少数据。
- 从第 2 步开始重复所有操作。
服务器端:
- 接受客户端连接;
- 接收数据直到结束(Stream.Read() 不想确定数据结束可能是因为连接仍然存在);
- 将所有数据保存到磁盘;
- 使用用于从客户端获取数据的相同客户端连接向客户端发送有关已保存数据量的响应。
问题是在服务器端我无法确定客户端发送的数据组的结尾。
如何做所有我想做的事?
【问题讨论】:
-
你看过 C# Socket 编程吗?你想通过网络传输什么类型的数据。这会是 TCP/IP、命名管道、套接字、线程/多线程 ..etc.. 很好的问题,但您没有提供要传输的数据类型.. 谢谢
-
我的原始数据是一堆结构。在发送之前,我将它们转换为字节数组并使用 NetworkStream 类进行传输。
-
Kraze 已经询问了一些关于数据的有趣事实。此外,您应该判断性能是否是一个问题。看起来一个简单的 WCF-Service 就足以满足您要完成的任务。
-
我忘了说我不能使用 WCF,因为如果它使用比 2.0 更新的 .net,我应该在我的情况下使用。
-
是的,性能很重要。
标签: c# .net client-server transfer confirmation