请会c++和java朋友帮忙,2G以后,recv总是读出多余的数据,超级奇异?该怎么处理
请会c++和java朋友帮忙,2G以后,recv总是读出多余的数据,超级奇异?
我用winsock写一个程序下载web的资源,服务器是tomcat 4.1
如果web的资源是一个实实在在的文件,那就下载数据长度正常
如果web的资源是一个servlet输出的文件,当超过2G之后,recv总是读出多余的数据,如果说我的servlet输出数据有问题,但我用浏览器下载又是正常的,那说明我的c++程序有问题,但他又能下载一个实实在在的文件,真是很矛盾
例如:一个2G的资源
length的长度都会是2G再多几K的
------解决方案--------------------
web 服务器返回的数据可能有其他格式: chunked 特别是大文件
Transfer-Encoding: chunked
这时每段数据会多包涵一些 数字, 这样接收的会多出一些数据
------解决方案--------------------
抓包分析下是多了什么数据了
我用winsock写一个程序下载web的资源,服务器是tomcat 4.1
如果web的资源是一个实实在在的文件,那就下载数据长度正常
如果web的资源是一个servlet输出的文件,当超过2G之后,recv总是读出多余的数据,如果说我的servlet输出数据有问题,但我用浏览器下载又是正常的,那说明我的c++程序有问题,但他又能下载一个实实在在的文件,真是很矛盾
例如:一个2G的资源
- C/C++ code
DWORD length; r = ::recv(s, buffer, 51200, 0); length += r;
length的长度都会是2G再多几K的
------解决方案--------------------
web 服务器返回的数据可能有其他格式: chunked 特别是大文件
Transfer-Encoding: chunked
这时每段数据会多包涵一些 数字, 这样接收的会多出一些数据
------解决方案--------------------
抓包分析下是多了什么数据了