我已经读完了,我听到有关此问题的混杂内容。您是否必须将文件拆分为块以通过流发送?或OS是否为您做到了?
我有一个大约320,000个值的字节数组,我需要通过网络。我可以获得前几千个,但之后的任何事情,它只是设置为0。
我正在使用NetworkStream类,创建一个TcpListener / TcpClient,连接后从侦听器获取流并将数组写入流然后刷新。没有成功。
任何帮助都将不胜感激。
干杯,
答案 0 :(得分:2)
使用TCP套接字时,OS可能会也可能不会将发送1024个字节的内容拆分成块。在我们的级别上的这种行为应该被认为是未定义的,接收器应该能够处理这种情况。大多数协议所做的是指定某个(已知的)消息大小,其中包含诸如文件大小,应该读取的数据范围等信息等。服务器构造的每条消息都将具有此标头。您作为程序员可以指定您的块大小,并且每个块必须在接收器级别重建。
这是一个演练:
这个例子非常基础,但它是沟通如何运作的良好基础。