【转】 python socket向百度发送http长连接请求 并做搜索
2011-11-15 10:43
896 查看
http://hi.baidu.com/leejun_2005/blog/item/30fe9bd23a396c28960a1640.html【转】 python socket向百度发送http长连接请求 并做搜索2011-10-08 22:13转载自 冷子健最终编辑 leejun_2005
http://www.vckbase.com/document/viewdoc/?id=1856
如何创建和使用socket链接池
作者:吴康彬
采用CS方式的程序不可避免都要碰到socket连接的问题,很多时候,使用编程语言当中自带的socket库,使用起来多少有些不习惯,虽然系统自带的库在很多异常处理,稳定性上下了很多功夫,但是要去理解和使用那些库,比如做socket连接池不免要走很多弯路。在这里我和大家讨论下怎么样创建和使用socket链接池。
一般socket链接有以下两种方式:长(常)链接和短链接。
长链接:当数据发送完成后socket链接不断开。一直保留到异常或者是程序退出为止,这种方式的好处是不用每次去发起连接断开,在速度上可以比短连接要快一些,但是相对来说对服务器的资源压力也要大些。长链接用的范围很广,比如游戏系统,qq等等,长(常)链接一般还需要定时向服务器ping数据,以保证socket链接畅通。当ping不通服务器时,需要重新开启链接。
短链接:当一次数据发送完毕后,主动断开链接,每次发送数据都要一次链接、断开操作,这种方式的好处是:对服务器的资源占用相对来说比较小,但是由于每次都要重新链接,速度开销上也比较大,这种方式对于那种不需要经常与服务器交互的情况下比较适用。
上面两种方法在用户量非常大的情况下都存在着很大的不足,因此,我们考虑可以用一种折衷的办法,那就是使用socket的连接池。
程序一开始初始化创建若干数量的长链接。给他们设置一个标识位,这个标识位表示该链接是否空闲的状态。当需要发送数据的时候,系统给它分配一个当前空闲的链接。同时,将得到的链接设置为“忙”,当数据发送完毕后,把链接标识位设置为“闲”,让系统可以分配给下个用户,这样使得两种方式的优点都充分的发挥出来了。杭州携购网络科技有限公司旗下的携购独立购物网(http://www.shopxg.com)系统采用的就是这种方式。用户数量足够多的时候,只需要动态增加链接池的数量即可。
下面我们用具体的程序来讲解下:
首先我们声明一个socket类:
|
Socket理解。
/article/2322053.htmlhttp://www.vckbase.com/document/viewdoc/?id=1856
如何创建和使用socket链接池
作者:吴康彬
采用CS方式的程序不可避免都要碰到socket连接的问题,很多时候,使用编程语言当中自带的socket库,使用起来多少有些不习惯,虽然系统自带的库在很多异常处理,稳定性上下了很多功夫,但是要去理解和使用那些库,比如做socket连接池不免要走很多弯路。在这里我和大家讨论下怎么样创建和使用socket链接池。
一般socket链接有以下两种方式:长(常)链接和短链接。
长链接:当数据发送完成后socket链接不断开。一直保留到异常或者是程序退出为止,这种方式的好处是不用每次去发起连接断开,在速度上可以比短连接要快一些,但是相对来说对服务器的资源压力也要大些。长链接用的范围很广,比如游戏系统,qq等等,长(常)链接一般还需要定时向服务器ping数据,以保证socket链接畅通。当ping不通服务器时,需要重新开启链接。
短链接:当一次数据发送完毕后,主动断开链接,每次发送数据都要一次链接、断开操作,这种方式的好处是:对服务器的资源占用相对来说比较小,但是由于每次都要重新链接,速度开销上也比较大,这种方式对于那种不需要经常与服务器交互的情况下比较适用。
上面两种方法在用户量非常大的情况下都存在着很大的不足,因此,我们考虑可以用一种折衷的办法,那就是使用socket的连接池。
程序一开始初始化创建若干数量的长链接。给他们设置一个标识位,这个标识位表示该链接是否空闲的状态。当需要发送数据的时候,系统给它分配一个当前空闲的链接。同时,将得到的链接设置为“忙”,当数据发送完毕后,把链接标识位设置为“闲”,让系统可以分配给下个用户,这样使得两种方式的优点都充分的发挥出来了。杭州携购网络科技有限公司旗下的携购独立购物网(http://www.shopxg.com)系统采用的就是这种方式。用户数量足够多的时候,只需要动态增加链接池的数量即可。
下面我们用具体的程序来讲解下:
首先我们声明一个socket类:
相关文章推荐
- python socket向百度发送http长连接请求 并做搜索
- python socket向百度发送http长连接请求 并做搜索
- python socket向百度发送http长连接请求 并做搜索
- 【转】 python socket向百度发送http长连接请求 并做搜索
- python socket向百度发送http长连接请求 并做搜索
- Python中使用socket发送HTTP请求数据接收不完整问题解决方法
- tcp socket客户端发送请求连接http服务
- Python中使用socket发送HTTP请求数据接收不完整问题解决方法
- 利用python的socket发送http(s)请求方法示例
- 如何使用SOCKET 发送HTTP1.1 GET POST请求包
- perl6 Socket: 发送HTTP请求
- 如何使用SOCKET 发送HTTP1.1 GET POST请求包
- 使用HttpWebRequest进行请求时发生错误:基础连接已关闭,发送时发生错误处理
- 如何使用SOCKET 发送HTTP1.1 GET POST请求包 转载
- c/c++ socket发送http请求访问网站
- 用clientsocket发送http头请求
- Android客户端连接服务器端,向服务器端发送请求HttpURLConnection
- 如何使用SOCKET 发送HTTP1.1 GET POST请求包
- (微信API接口开发) 使用HttpWebRequest进行请求时发生错误:基础连接已关闭,发送时发生错误处理