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