当前位置: 首页 > news >正文

Ruby用6行搞定P2P


一个人用15行写了一个p2p的Python程序,然后有人用Perl写了一个9行的。
这里有一个6行的Ruby版本:(作者:"Florian Gross" <flgr@ccan.de >)

#!/usr/bin/ruby
# Server: ruby p2p.rb password server server-uri merge-servers
# Sample: ruby p2p.rb foobar server druby://localhost:1337 druby://foo.bar:1337
# Client: ruby p2p.rb password client server-uri download-pattern
# Sample: ruby p2p.rb foobar client druby://localhost:1337 *.rb


require'drb';F,D,P,M,U,*O=File,Dir,*ARGV;def s(p)F.basename p[/w.*/]end;def c u
DRbObject.new((),u)end;def x(u);[P,u].hash;end;M["c"]?c(U).f(x(U)).map{|n|p=x(n)
c=c(n);(c.f(p,O[0],0).map{|f|s f}-D["*"]).map{|f|open(f,"w")<<c.f(p,f,1)}}:(DRb.
start_service U,Class.new{def p(z=O)O.push(*z).uniq!;O;end;new.methods.map{|m|m[
/_[_t]/]||private(m)};def f(c,a=[],t=2)c==x(U)&&(t==0?D[s(a)]:t==1?F.read(s(a)):
p(a))end;def y;(p(U)+p).map{|u|c(u).f(x(u),p(U))rescue()};self;end}.new.y;sleep)

相关文章:

  • Bootstrap中面板的使用
  • LCA rmq st model
  • 一个有意思的Ruby脚本
  • 如何提醒客户重载父类的指定方法?
  • 将键盘的按键转换成相应的Unicode 值
  • sqlserver 锁表语句分享
  • 产品版本改造中的项目管理
  • 一种人吃蜂蜜火上浇油
  • windows 特殊文件后缀集合
  • 异或+构造 HDOJ 5416 CRB and Tree
  • 使用loader加载swf
  • WIN7 嵌入式系统安装教程 Windows Embedded Standard 2011 安装
  • [CakePHP] 在Controller中使用Helper
  • SVG图像技术摘要
  • [Loadrunner参数化]一个文件输两列参数的取值
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • angular组件开发
  • axios 和 cookie 的那些事
  • CentOS 7 防火墙操作
  • css属性的继承、初识值、计算值、当前值、应用值
  • ESLint简单操作
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • JavaScript标准库系列——Math对象和Date对象(二)
  • javascript数组去重/查找/插入/删除
  • mongo索引构建
  • python docx文档转html页面
  • underscore源码剖析之整体架构
  • Vue.js源码(2):初探List Rendering
  • 大型网站性能监测、分析与优化常见问题QA
  • 观察者模式实现非直接耦合
  • 深入浏览器事件循环的本质
  • 探索 JS 中的模块化
  • 我是如何设计 Upload 上传组件的
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • $(function(){})与(function($){....})(jQuery)的区别
  • ( )的作用是将计算机中的信息传送给用户,计算机应用基础 吉大15春学期《计算机应用基础》在线作业二及答案...
  • (31)对象的克隆
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (solr系列:一)使用tomcat部署solr服务
  • (附源码)spring boot北京冬奥会志愿者报名系统 毕业设计 150947
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (转)iOS字体
  • .Net IOC框架入门之一 Unity
  • .NET MVC第三章、三种传值方式
  • .net web项目 调用webService
  • .net/c# memcached 获取所有缓存键(keys)
  • .NET/C# 使用 SpanT 为字符串处理提升性能
  • @manytomany 保存后数据被删除_[Windows] 数据恢复软件RStudio v8.14.179675 便携特别版...
  • @transaction 提交事务_【读源码】剖析TCCTransaction事务提交实现细节
  • @Transaction注解失效的几种场景(附有示例代码)
  • [AR Foundation] 人脸检测的流程
  • [c++] C++多态(虚函数和虚继承)