使用Socket API如何与WEB服务器通信

  其实这个问题只要将请求网页HTTP内容明白就好解决.

  请求HTTP头内容如下:

  GET 你的网址 HTTP/1.1

  Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, application/x-shockwave-flash, */* //要求返回的内容,如需要返回图片或Flash等,我通常都是让服务器仅返回text/html,主要是加快速度.

  Accept-Language: zh-cn//使用的语言

  User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; MyIE2) //这里主要是告诉服务器你的IE版号,所使用的系统及使用的浏览器,其实如果你想隐藏这里的内容,可以自行修改.

  Host: www.paymesurf.com //服务器地址

  Proxy-Connection: Keep-Alive

  上面基本上是HTTP的内容,在使用过程中大家需要注意以下几点:

  1 发送请求的内容时,一定要再多加一个+#13#10

  Httpstr:=GET http://www.paymesurf.com:80/surf3.php?usrid=607 HTTP/1.1+#13#10;

  httpstr:=httpstr+Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, application/x-shockwave-flash, */*+#13#10;

  httpstr:=httpstr+Accept-Language: zh-cn+#13#10;

  httpstr:=httpstr+User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; MyIE2;

  .NET CLR 1.1.4322)+#13#10;

  httpstr:=httpstr+Host: www.paymesurf.com+#13#10;

  httpstr:=httpstr+Proxy-Connection: Keep-Alive+#13#10;

  上面是一个网友的请求内容,而这个无法返回网页内容,主要问题就是没有告诉服务器哪里是结束位置.需要在最后面的位置再加入一个+#13#10,这样服务器 就会知道这里是结束了.

  2 如何知道网页请求完毕,主要是通过FD_CLOSE来判断,当网页全部返回时,服务器会自动关闭这个请求,所以你只要知道当前请求关闭就说明网页已经下载完毕.

  3 下面是我个人的经验了,如果你想写与WEB通信的软件,最好不要直接使用Socket与服务器通信,先将自己的IE设置成代理的模式,先看一看IE是如何通过代理软件(这个软件你最好自己写一个,可以显示请求的内容的.)工作的.然后你再使用你的软件与服务器通信这样你就知道你通常出错在哪里了.

时间: 2024-10-29 10:11:58

使用Socket API如何与WEB服务器通信的相关文章

详谈socket请求Web服务器过程(转)

  最开始我们需要明白一件事情,因为这是这篇文章的前提: HTTP协议只是一个应用层协议,它底层是通过TCP进行传输数据的.因此,浏览器访问Web服务器的过程必须先有"连接建立"的发生. 而有人或许会问:众所周知,HTTP协议有两大特性,一个是"无连接"性,一个是"无状态"性.这里的"无连接"岂不是跟上面的说法有冲突?其实这里并没有矛盾,只是人们对"连接"这个词的理解有差异.首先我们来看一下浏览器向Web服

典型Web服务器入门

在UNIX和LINUX平台下使用最广泛的免费HTTP服务器是W3C.NCSA和APACHE服务器,而Windows平台NT/2000/2003使用IIS的WEB服务器.在选择使用WEB服务器应考虑的本身特性因素有:性能.安全性.日志和统计.虚拟主机.代理服务器.缓冲服务和集成应用程序等,下面介绍几种常用的WEB服务器. Microsoft IIS Microsoft的Web服务器产品为Internet Information Server (IIS), IIS 是允许在公共Intranet或In

转载--什么是WEB服务器? 常用的WEB服务器有哪些

  什么是WEB服务器? 常用的WEB服务器有哪些? 什么是WEB服务器? 常用的WEB服务器有哪些?   一.什么是WEB服务器     Web服务器可以解析HTTP协议.当Web服务器接收到一个HTTP请求,会返回一个HTTP响应,例如送回一个HTML页面.为了处理一个请求Web服务器可以响应一个静态页面或图片,进行页面跳转或者把动态响应的产生委托给一些其它的程序例如CGI脚本,JSP脚本,servlets,ASP脚本,服务器端JavaScript,或者一些其它的服务器端技术.无论它们(译者

IIS 7.5 中提供的 Web 服务器 (IIS) 角色服务

Internet 信息服务 (IIS) 7.5 是 Windows 7 中的 Web 服务器 (IIS) 角色和 Windows Server 2008 R2 中的 Web 服务器.Web 服务器在 IIS 7 中经过重新设计,使您可以通过添加或删除模块对服务器进行自定义,从而满足您的特定需求.模块是服务器用于处理请求的独特功能.例如,IIS 使用身份验证模块对客户端凭据进行身份验证,并使用缓存模块来管理缓存活动. Windows Server 2008 R2 提供了在生产环境中支持 Web 内

认识典型Web服务器

在UNIX和LINUX平台下使用最广泛的免费HTTP服务器是W3C.NCSA和APACHE服务器,而Windows平台NT/2000/2003使用IIS的WEB服务器.在选择使用WEB服务器应考虑的本身特性因素有:性能.安全性.日志和统计.虚拟主机.代理服务器.缓冲服务和集成应用程序等,下面介绍几种常用的WEB服务器. ① Microsoft IIS Microsoft的Web服务器产品为Internet Information Server (IIS), IIS 是允许在公共Intranet或

Android编程之客户端通过socket与服务器通信的方法

  Android编程之客户端通过socket与服务器通信的方法        本文实例讲述了Android编程之客户端通过socket与服务器通信的方法.分享给大家供大家参考,具体如下: 下面是一个demo,Android客户端通过socket与服务器通信. 由于Android里面可以完全使用java.io.*包和java.net.*包,那么,实际上,逻辑部分与J2SE没有区别.只是UI代码不一样. Android客户端通过socket与服务器通信分为下面5步: (1)通过IP地址和端口实例化

服务器-C语言 socket 编写简单服务端客户端通信问题

问题描述 C语言 socket 编写简单服务端客户端通信问题 大家好,感谢你的回复. 我用c 写了一个socket通信的小程序,写好了服务端和客户端,可遇到个问题,就是每次启动客户端只能发送第一条消息,之后服务端就不能再收到消息了. Talk is cheak , show me the code. 服务端代码: #include<stdlib.h> #include<WinSock2.h> #pragma comment(lib,"ws2_32.lib") i

网络编程-有关于Socket的问题,简单的服务器程序与客户程序之间的通信

问题描述 有关于Socket的问题,简单的服务器程序与客户程序之间的通信 问题是这样的,我写了两个简单 的服务器程序,其中一个与一个简单的客户程序可以连续发多次信息,而另一个则不可以,发一次它就会不能继续再发了,程序并没有停止运行,而是服务器收不到它的信息了,求大侠帮忙看下啦~以下为两个服务器程序代码.因为我用的是同一个客户程序测试,所以跟client无关 吧. //这个是可以连续发送信息的服务器 package Test20140210; import java.io.BufferedRead

java-急求Java socket编程实现两个客户端通信通过服务器转发不要图形界面不用连接数据库

问题描述 急求Java socket编程实现两个客户端通信通过服务器转发不要图形界面不用连接数据库 实现两个客户端通信通过服务器转发不要图形界面不用连接数据库 求源码 解决方案 通过服务器,也就是说各个客户端与服务器要正常通讯,这是最基本的要求.这个要求应该不难吧,网上有很多类似的代码,如Android Socket 编程(WIFI 和 ADB),这是我在 CSDN 博客中的一篇文章,希望对你有帮助. 然后呢,做协议,当服务器接收到数据满足一定的格式.或所有数据,都转发到另一端. 解决方案二: