我有一个使用 C# 编写的客户端/服务器网络程序
TCPListener 和 TCPClient 类。服务器正在读取所有内容
来自客户端(少量 xml)就很好,直到我尝试发送
大文件(100k)返回给客户端。
我正在使用流函数
客户端和服务器都具有非阻塞套接字功能。当我做一个
socket.SendFile("filename") 返回给客户端,文件正在获取
cut off - 我已将客户端上的接收缓冲区大小设置为远远超过
100k 但在 25k 左右仍然会被切断并且通信
客户端和服务器之间的后缀是不可靠的。
我的基本问题
如果数据以某种方式留在管道中会发生什么?即...会是
由下一个套接字读取。Read... 是否每个 Send 调用都需要准确
唯一的一个阅读?也许我没有给客户足够的时间
读取文件,但它们都在同一台机器上,我已经尝试过
在不同的地方睡几秒钟但没有成功。
您很可能无法通过一次 Read 调用读取整个消息(也许所有数据尚未到达)。在网络编程中,您通常会在 while 循环中调用 Read,然后简单地使用 Read() 直到收到完整的预期消息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)