Python论坛  - 讨论区

标题:[python-chinese] P2P共享音乐客户端项目

2005年04月01日 星期五 13:27

Chao Wang xtchao at gmail.com
Fri Apr 1 13:27:01 HKT 2005

P2P共享音乐客户端项目

客户端功能要求:
在已经提供的Address Server上注册与注销
通过Address Server查询其他在线的Peers
发送查询请求到其他Peers
响应其他Peers得查询请求
从其他Peers上请求文件下载
响应其他Peers得文件下载请求

用浏览器作为与用户交流的界面

目前Address Server已经提供了

通过这样的URI可以实现在Address Server上注册

http://Server/peerdb.cgi?requestType=register&name;=username&address;=ip地址:端口号

注册成功后,得到如下XML回复

  RegisterReply
  true
  Tue 8 Mar, 2005 11:01:02 
 

通过http://Server/~brooks/682/peerdb.cgi?requestType=unregister&name;=
可以在Address Server里注销

Address Server还支持这样的操作
http://server/peerdb.cgi?requestType=findAllPeers
可以查询到所有在线的Peers

得到如下XML回复

  UserListReply
  true
  Tue 8 Mar, 2005 11:01:02

  
     liudehua 
    
192.3.55.6:8000
zhangxueyou
133.66.197.2:8000
guofucheng
132.6.55.1:8000
当用户想查询歌曲的时候 发送如下请求给所有在线的Peers http://otherpeers:port?requestType=search&field;=artist&keyword;=zhoujielun Peers接到这样的请求后,要从自己的XML数据库里查询是否有符合条件的歌曲,并给与下面格式的XML回复。 此XML数据库不要求能通过Client更新,也就是说在一开始建好一个这样的数据库,放上几个歌就OK了,格式也不用跟下面的XML一致,到时候通过XSLT转换一下就OK SearchReply true Tue 8 Mar, 2005 11:01:02 Police Truck Dead Kennedys Give Me Convenience Or Give Me Death Punk http://111.111.111.111:8080/123.mp3> 16433776 Mon 7 Mar, 2005 11:01:02 dfsdfsdfsfdfsddfs ... 发出查询请求的Peers把得到的XML翻译出来给用户阅读,用户选择下载哪首歌曲 用户决定下载后,Peer根据上面XML里的URL,发出HTTP GET请求。远方Peer响应此请求,把文件传过去。 基本的功能要求就是这样了。 因为只是个教学目的的项目,所以这里不考虑Peers很多的情况,在这一假设下,发送查询请求到每个Peers是可行的 另外,这里不考虑因为防火墙,内网无映射等原因造成的http请求无法到达远方Peers的情况。 按照这样一个模型,我的Client启动的同时,也要在后台启动一个Web service,这个Service不但要能响应普通的HTTP GET请求,还得能响应REST请求,在网上查了很久,都找不到响应REST得有关东东。Python有关Web Service得东东(BaseHTTPServer,CGIHTTPServer,CGIRequestHandler)似乎也没有文档支持 Service如果搞出来,启动了永远监听就好了,但是Client似乎有点麻烦,因为没有GUI,通过浏览器进行操作的话,我怎么实现启动阿?用一个Python写的cgi脚本?那样的话我的Webservice是不是还得能支持CGI请求,我总不能把CGI放到远方的Server里,通过打开那个Cgi实现吧。 这些都是目前比较困惑的问题 希望得到各位朋友们的帮助,建议,方案或者有关技术文档 谢谢! 王超

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年04月01日 星期五 13:27

Liming_Do Liming_Do at smics.com
Fri Apr 1 13:27:06 HKT 2005

hi,limodou,
看到NewEdit最新的安装exe,是不是安了这个就可以在没有python和wxPython的环境使用呀?

-----原始邮件-----
发件人: python-chinese-bounces at lists.python.cn
[mailto:python-chinese-bounces at lists.python.cn]代表 limodou
发送时间: 2005年4月1日 11:24
收件人: python-chinese at lists.python.cn
主题: Re: [python-chinese] py2exe编译出exe很大


用别的也是一样。因为exe文件要包含你的程序所用到的所有的东西,象pythonxx.dll,一些pyc,一些pyd文件,的确很大的。象wxPython程序生成安装包一般都在4M以上。


On Fri, 1 Apr 2005 10:35:58 +0800, wuliguo <wlg at cassae.ac.cn> wrote:
>  
> 今天在windows下编译了一个使用tk的gui程序 
> 程序很小,但dist目录下的文件很多 
> 不知道已经在这方面有过经验的朋友能否推荐其他东东! 
> _______________________________________________
> python-chinese list
> python-chinese at lists.python.cn
> http://python.cn/mailman/listinfo/python-chinese
> 
> 
> 


-- 
I like python! 
My Donews Blog: http://www.donews.net/limodou
My Sina Blog: http://blog.sina.com.cn/blog/1148608914
New Google Maillist: http://groups-beta.google.com/group/python-cn
_______________________________________________
python-chinese list
python-chinese at lists.python.cn
http://python.cn/mailman/listinfo/python-chinese

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年04月01日 星期五 13:43

cpunion cpunion at 263.net
Fri Apr 1 13:43:07 HKT 2005

用一个Web服务器即可。只是要另写一个工具,完成注册到Address Server的功 
能,这样其它用户实际上直接访问你的Web服务器了,下载文件什么的都是Web服务 
器来完成。

Chao Wang 写道:

>P2P共享音乐客户端项目
>
>客户端功能要求:
>在已经提供的Address Server上注册与注销
>通过Address Server查询其他在线的Peers
>发送查询请求到其他Peers
>响应其他Peers得查询请求
>从其他Peers上请求文件下载
>响应其他Peers得文件下载请求
>
>用浏览器作为与用户交流的界面
>
>目前Address Server已经提供了
>
>通过这样的URI可以实现在Address Server上注册
>
>http://Server/peerdb.cgi?requestType=register&name;=username&address;=ip地址:端口号
>
>注册成功后,得到如下XML回复
>
>  RegisterReply
>  true
>  Tue 8 Mar, 2005 11:01:02 
> 
>
>通过http://Server/~brooks/682/peerdb.cgi?requestType=unregister&name;=
>可以在Address Server里注销
>
>Address Server还支持这样的操作
>http://server/peerdb.cgi?requestType=findAllPeers
>可以查询到所有在线的Peers
>
>得到如下XML回复
>
>  UserListReply
>  true
>  Tue 8 Mar, 2005 11:01:02
>
>  
>     liudehua 
>    
192.3.55.6:8000
> > > zhangxueyou >
133.66.197.2:8000
> > >guofucheng >
132.6.55.1:8000
> > > > >当用户想查询歌曲的时候 >发送如下请求给所有在线的Peers >http://otherpeers:port?requestType=search&field;=artist&keyword;=zhoujielun > >Peers接到这样的请求后,要从自己的XML数据库里查询是否有符合条件的歌曲,并给与下面格式的XML回复。 > >此XML数据库不要求能通过Client更新,也就是说在一开始建好一个这样的数据库,放上几个歌就OK了,格式也不用跟下面的XML一致,到时候通过XSLT转换一下就OK > > > SearchReply > true > Tue 8 Mar, 2005 11:01:02 > > > > Police Truck > Dead Kennedys > Give Me Convenience Or Give Me Death > Punk > http://111.111.111.111:8080/123.mp3> > 16433776 > Mon 7 Mar, 2005 11:01:02 > dfsdfsdfsfdfsddfs > > ... > > > > >发出查询请求的Peers把得到的XML翻译出来给用户阅读,用户选择下载哪首歌曲 > >用户决定下载后,Peer根据上面XML里的URL,发出HTTP GET请求。远方Peer响应此请求,把文件传过去。 > >基本的功能要求就是这样了。 >因为只是个教学目的的项目,所以这里不考虑Peers很多的情况,在这一假设下,发送查询请求到每个Peers是可行的 > >另外,这里不考虑因为防火墙,内网无映射等原因造成的http请求无法到达远方Peers的情况。 > >按照这样一个模型,我的Client启动的同时,也要在后台启动一个Web service,这个Service不但要能响应普通的HTTP >GET请求,还得能响应REST请求,在网上查了很久,都找不到响应REST得有关东东。Python有关Web >Service得东东(BaseHTTPServer,CGIHTTPServer,CGIRequestHandler)似乎也没有文档支持 > >Service如果搞出来,启动了永远监听就好了,但是Client似乎有点麻烦,因为没有GUI,通过浏览器进行操作的话,我怎么实现启动阿?用一个Python写的cgi脚本?那样的话我的Webservice是不是还得能支持CGI请求,我总不能把CGI放到远方的Server里,通过打开那个Cgi实现吧。 > >这些都是目前比较困惑的问题 > >希望得到各位朋友们的帮助,建议,方案或者有关技术文档 > >谢谢! > >王超 >_______________________________________________ >python-chinese list >python-chinese at lists.python.cn >http://python.cn/mailman/listinfo/python-chinese > > > > -- 座右铭:不怕不会,就怕不会搜! 提点建议:大家把自己的邮件客户端设置一下,这里好多邮件是乱码,如果你们看到我的邮件是乱码,也请通知我一下,以免影响交流。

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年04月01日 星期五 13:54

Chao Wang xtchao at gmail.com
Fri Apr 1 13:54:16 HKT 2005

可我还得能去别人那里查歌,下载歌啊
光Web服务器不行吧

On Mar 31, 2005 9:43 PM, cpunion <cpunion at 263.net> wrote:
> 用一个Web服务器即可。只是要另写一个工具,完成注册到Address Server的功
> 能,这样其它用户实际上直接访问你的Web服务器了,下载文件什么的都是Web服务
> 器来完成。
> 
> Chao Wang 写道:
> 
> >P2P共享音乐客户端项目
> >
> >客户端功能要求:
> >在已经提供的Address Server上注册与注销
> >通过Address Server查询其他在线的Peers
> >发送查询请求到其他Peers
> >响应其他Peers得查询请求
> >从其他Peers上请求文件下载
> >响应其他Peers得文件下载请求
> >
> >用浏览器作为与用户交流的界面
> >
> >目前Address Server已经提供了
> >
> >通过这样的URI可以实现在Address Server上注册
> >
> >http://Server/peerdb.cgi?requestType=register&name;=username&address;=ip地址:端口号
> >
> >注册成功后,得到如下XML回复
> >
> >  RegisterReply
> >  true
> >  Tue 8 Mar, 2005 11:01:02 
> > 
> >
> >通过http://Server/~brooks/682/peerdb.cgi?requestType=unregister&name;=
> >可以在Address Server里注销
> >
> >Address Server还支持这样的操作
> >http://server/peerdb.cgi?requestType=findAllPeers
> >可以查询到所有在线的Peers
> >
> >得到如下XML回复
> >
> >  UserListReply
> >  true
> >  Tue 8 Mar, 2005 11:01:02
> >
> >  
> >     liudehua 
> >    
192.3.55.6:8000
> > > > > > zhangxueyou > >
133.66.197.2:8000
> > > > > >guofucheng > >
132.6.55.1:8000
> > > > > > > > > >当用户想查询歌曲的时候 > >发送如下请求给所有在线的Peers > >http://otherpeers:port?requestType=search&field;=artist&keyword;=zhoujielun > > > >Peers接到这样的请求后,要从自己的XML数据库里查询是否有符合条件的歌曲,并给与下面格式的XML回复。 > > > >此XML数据库不要求能通过Client更新,也就是说在一开始建好一个这样的数据库,放上几个歌就OK了,格式也不用跟下面的XML一致,到时候通过XSLT转换一下就OK > > > > > > SearchReply > > true > > Tue 8 Mar, 2005 11:01:02 > > > > > > > > Police Truck > > Dead Kennedys > > Give Me Convenience Or Give Me Death > > Punk > > http://111.111.111.111:8080/123.mp3> > > 16433776 > > Mon 7 Mar, 2005 11:01:02 > > dfsdfsdfsfdfsddfs > > > > ... > > > > > > > > > >发出查询请求的Peers把得到的XML翻译出来给用户阅读,用户选择下载哪首歌曲 > > > >用户决定下载后,Peer根据上面XML里的URL,发出HTTP GET请求。远方Peer响应此请求,把文件传过去。 > > > >基本的功能要求就是这样了。 > >因为只是个教学目的的项目,所以这里不考虑Peers很多的情况,在这一假设下,发送查询请求到每个Peers是可行的 > > > >另外,这里不考虑因为防火墙,内网无映射等原因造成的http请求无法到达远方Peers的情况。 > > > >按照这样一个模型,我的Client启动的同时,也要在后台启动一个Web service,这个Service不但要能响应普通的HTTP > >GET请求,还得能响应REST请求,在网上查了很久,都找不到响应REST得有关东东。Python有关Web > >Service得东东(BaseHTTPServer,CGIHTTPServer,CGIRequestHandler)似乎也没有文档支持 > > > >Service如果搞出来,启动了永远监听就好了,但是Client似乎有点麻烦,因为没有GUI,通过浏览器进行操作的话,我怎么实现启动阿?用一个Python写的cgi脚本?那样的话我的Webservice是不是还得能支持CGI请求,我总不能把CGI放到远方的Server里,通过打开那个Cgi实现吧。 > > > >这些都是目前比较困惑的问题 > > > >希望得到各位朋友们的帮助,建议,方案或者有关技术文档 > > > >谢谢! > > > >王超 > >_______________________________________________ > >python-chinese list > >python-chinese at lists.python.cn > >http://python.cn/mailman/listinfo/python-chinese > > > > > > > > > > -- > 座右铭:不怕不会,就怕不会搜! > > 提点建议:大家把自己的邮件客户端设置一下,这里好多邮件是乱码,如果你们看到我的邮件是乱码,也请通知我一下,以免影响交流。 > > _______________________________________________ > python-chinese list > python-chinese at lists.python.cn > http://python.cn/mailman/listinfo/python-chinese >

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年04月01日 星期五 13:59

limodou limodou at gmail.com
Fri Apr 1 13:59:54 HKT 2005

是的。不过那个exe也不是最新的。改动的一些东西还没有完全转成exe

On Apr 1, 2005 1:27 PM, Liming_Do <Liming_Do at smics.com> wrote:
> hi,limodou,
> 看到NewEdit最新的安装exe,是不是安了这个就可以在没有python和wxPython的环境使用呀?
> 
> -----原始邮件-----
> 发件人: python-chinese-bounces at lists.python.cn
> [mailto:python-chinese-bounces at lists.python.cn]代表 limodou
> 发送时间: 2005年4月1日 11:24
> 收件人: python-chinese at lists.python.cn
> 主题: Re: [python-chinese] py2exe编译出exe很大
> 
> 用别的也是一样。因为exe文件要包含你的程序所用到的所有的东西,象pythonxx.dll,一些pyc,一些pyd文件,的确很大的。象wxPython程序生成安装包一般都在4M以上。
> 
> On Fri, 1 Apr 2005 10:35:58 +0800, wuliguo <wlg at cassae.ac.cn> wrote:
> >
> > 今天在windows下编译了一个使用tk的gui程序
> > 程序很小,但dist目录下的文件很多
> > 不知道已经在这方面有过经验的朋友能否推荐其他东东!
> > _______________________________________________
> > python-chinese list
> > python-chinese at lists.python.cn
> > http://python.cn/mailman/listinfo/python-chinese
> >
> >
> >
> 
> --
> I like python!
> My Donews Blog: http://www.donews.net/limodou
> My Sina Blog: http://blog.sina.com.cn/blog/1148608914
> New Google Maillist: http://groups-beta.google.com/group/python-cn
> _______________________________________________
> python-chinese list
> python-chinese at lists.python.cn
> http://python.cn/mailman/listinfo/python-chinese
> _______________________________________________
> python-chinese list
> python-chinese at lists.python.cn
> http://python.cn/mailman/listinfo/python-chinese
> 


-- 
I like python! 
My Donews Blog: http://www.donews.net/limodou
My Sina Blog: http://blog.sina.com.cn/blog/1148608914
New Google Maillist: http://groups-beta.google.com/group/python-cn

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年04月01日 星期五 14:21

cpunion cpunion at 263.net
Fri Apr 1 14:21:51 HKT 2005

你只需要给用户显示下载的链接,用户点击以后可以链接到别人的服务器上下载, 
一样可以下载到。

如果你是要让用户看不出是从别处下载的,用一个jumpgate就可以了,为每个远方 
的服务器在本机上开一个端口来跳转。

完整的过程如下:
1、Web服务器启动
2、注册工具启动,注册Web服务器IP和端口到Address Server,并findAllPeers, 
得到其它服务器IP和端口,为每个其它的服务器调用jumpgate做个跳转,并保存跳 
转列表jump_list。
3、用户查询时,访问的是你的Web服务器,在查询页面后台向其它服务器查询,并 
把查询结果显示给用户,不过文件链接将替换成你的服务器跳转端口。Web 服务器 
要根据jump_list的内容进行查询,并根据jump_list把文件下载链接全部替换成本 
机不同端口,以隐藏真实链接。
4、用户点击链接,下载文件的请求会转向到其它服务器,而用户无法感知。

以上算是个最简的实现,只需要编写一个注册工具,维护jump_list,编写一个查 
询页面即可。


国外有一种职称叫“系统中和(综合)工程师”,也不知道是不是这几个字,前段时 
间听说的,不知道国内是否有相应的称呼,完成的工作大致就是这样,要会多种平 
台、语言、库,把别人写好的平台、库用很简单的方式组成一个可用的系统。

Chao Wang 写道:

>可我还得能去别人那里查歌,下载歌啊
>光Web服务器不行吧
>  
>
-- 

座右铭:不怕不会,就怕不会搜!

提点建议:大家把自己的邮件客户端设置一下,这里好多邮件是乱码,如果你们看到我的邮件是乱码,也请通知我一下,以免影响交流。


[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年04月01日 星期五 16:46

Chao Wang xtchao at gmail.com
Fri Apr 1 16:46:04 HKT 2005

谢谢
很受启发
到不用那么麻烦做跳转,既然是P2P,看到其他Peers也就无所谓了
不过现在的问题困在不知道如何用Python写能够处理REST请求的Web service,网上相关资料几乎没有,比较郁闷。

那个系统中和(综合)工程师,还真是第一次听说,我的这个好像不需要那么复杂把,呵呵

On Mar 31, 2005 10:21 PM, cpunion <cpunion at 263.net> wrote:
> 你只需要给用户显示下载的链接,用户点击以后可以链接到别人的服务器上下载,
> 一样可以下载到。
> 
> 如果你是要让用户看不出是从别处下载的,用一个jumpgate就可以了,为每个远方
> 的服务器在本机上开一个端口来跳转。
> 
> 完整的过程如下:
> 1、Web服务器启动
> 2、注册工具启动,注册Web服务器IP和端口到Address Server,并findAllPeers,
> 得到其它服务器IP和端口,为每个其它的服务器调用jumpgate做个跳转,并保存跳
> 转列表jump_list。
> 3、用户查询时,访问的是你的Web服务器,在查询页面后台向其它服务器查询,并
> 把查询结果显示给用户,不过文件链接将替换成你的服务器跳转端口。Web 服务器
> 要根据jump_list的内容进行查询,并根据jump_list把文件下载链接全部替换成本
> 机不同端口,以隐藏真实链接。
> 4、用户点击链接,下载文件的请求会转向到其它服务器,而用户无法感知。
> 
> 以上算是个最简的实现,只需要编写一个注册工具,维护jump_list,编写一个查
> 询页面即可。
> 
> 国外有一种职称叫"系统中和(综合)工程师",也不知道是不是这几个字,前段时
> 间听说的,不知道国内是否有相应的称呼,完成的工作大致就是这样,要会多种平
> 台、语言、库,把别人写好的平台、库用很简单的方式组成一个可用的系统。
> 
> Chao Wang 写道:
> 
> >可我还得能去别人那里查歌,下载歌啊
> >光Web服务器不行吧
> >
> >
> --
> 
> 座右铭:不怕不会,就怕不会搜!
> 
> 提点建议:大家把自己的邮件客户端设置一下,这里好多邮件是乱码,如果你们看到我的邮件是乱码,也请通知我一下,以免影响交流。
> 
> _______________________________________________
> python-chinese list
> python-chinese at lists.python.cn
> http://python.cn/mailman/listinfo/python-chinese
>

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年04月01日 星期五 17:55

cpunion cpunion at 263.net
Fri Apr 1 17:55:14 HKT 2005

Bo Yang的那封邮件里有REST处理的文章。

如果你不是做一个能用的REST处理框架/库,只是面向你这里的特定应用,其实也 
不用考虑那么复杂,自己生成和解析也不是很复杂。

Chao Wang 写道:

>谢谢
>很受启发
>到不用那么麻烦做跳转,既然是P2P,看到其他Peers也就无所谓了
>不过现在的问题困在不知道如何用Python写能够处理REST请求的Web service,网上相关资料几乎没有,比较郁闷。
>  
>
-- 

座右铭:不怕不会,就怕不会搜!

提点建议:大家把自己的邮件客户端设置一下,这里好多邮件是乱码,如果你们看到我的邮件是乱码,也请通知我一下,以免影响交流。


[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号