九台 2016-02-19 07:39 采纳率: 0%
浏览 1839

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的主页面


  • 写回答

2条回答

  • oyljerry 2016-02-19 09:05
    关注

    图片返回的是不是一个路径,这里图片只有名字,你需要拿到它实际的地址等。页面中返回没有。

    评论

报告相同问题?

悬赏问题

  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型