问题描述
- c 模拟http请求,如何获取页面中的图片?
-
1.我编写了一个SOCKET程序,功能类似代理软件,主要是将指定服务器的页面转发到本地。
2.在浏览器访问本地地址时,就会打开指定服务器的页面
3.现在的问题是可以获取到文本数据,如:<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />? <html> <head> </head> <body> <h1>This a test</h1> <p> <img src="test.png" width="512" height="512" /> </p> </body> </html>
浏览器也可以显示页面,但是图片无法加载
4.请问是什么原因呢?是否是http服务器关闭了这次连接,但是图片却并没有拿到本地导致的?
5.有什么解决办法吗?
程序已经找到问题了。原来的程序在文本信息发送后,确实会将图片等其他数据传过来。
但是还是找不到什么原因导致的图片传输一半就会关闭连接。
1.目前我的代理程序在windows端工作,使用完成端口,想将远程服务器的页面转发到本地,然后在浏览器可以打开页面。
2.目前的问题是图片会偶尔传输不过来,尺寸小的图片可以传送,但是大尺寸的图片传输一部分后,连接就会关闭.
3.同样的连接模式,在linux平台使用epoll模型,转发数据都正常。
请问可能是哪方面问题呢?/* +----------------------------------------------------------------------------------------------+ | 在本地PC运行的程序分为服务端与客户端 | | | | +--------------------------+ +---------------------------------------+ | +---------------------------+ | | | | | | | | | | 本地客户端 | | 在本地建立的服务端 | | | 192.168.2.19 | | | 主要是浏览器 +-----------> | 负责将本地数据转发到远端服务器 +-------------------> | 远端服务器 | | | FTP等软件 | | 或者将远端服务器发送过来 | | | 真实的目标地址 | | | | | 的数据转发到本地的客户端 | | | | | | | <----------+ | <-------------------+ | | | | | | | | | | +--------------------------+ +---------------------------------------+ | | | | | +---------------------------+ | | +----------------------------------------------------------------------------------------------+ 要达到效果是: 在浏览器中输入 127.0.0.1:8000 打开192.168.2.19的主页面
解决方案
图片返回的是不是一个路径,这里图片只有名字,你需要拿到它实际的地址等。页面中返回没有。
解决方案二:
应该是代理服务器代码的问题,如果长连接开启,一次http可以传输多个包,如果长连接关闭,那么浏览器加载html后会重新发起一个http请求索取图片
时间: 2024-12-29 00:20:34