我已经构建了一个使用“Winsock”工具的简单项目。
当我收到任何数据时,我把它放在变量中,因为我不能把它放在文本框中,因为 它是一个文件而不是文本。
但是,如果我发送一个大文件,它会给我一个错误。
“溢出”
有没有办法解决这个问题?
答案 0 :(得分:0)
您是否在发送更多数据之前正确处理SendComplete事件?
否则,您将从WinSock控件中获得缓冲区溢出。
答案 1 :(得分:0)
VB可变长度字符串理论上只能是2GB大小,它的实际最大大小取决于可用的虚拟内存,整个应用程序也限制为2GB。但由于VB以unicode格式存储字符串,这意味着它只能包含1GB的文本。
(maximum length for string in VB6)
如果这是您的问题,请尝试按几个字符串拆分传入数据。
答案 2 :(得分:0)
您需要将数据拆分为较小的数据包(每个数据包大约2-5k)并分别发送每个数据包,然后在另一端重新构建数据包。您可以在数据末尾添加一个唯一字符,以便接收端知道已收到该传输的所有数据Chr(0)
?
对于这个问题,这是一个非常简化的解决方案 - 更好的方法是设计一个简单的数据握手协议,以便您知道每个数据包都已被接收。