`
mushme
  • 浏览: 777659 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

ruby CS版本的wobot

 
阅读更多
看到了socket,顺便改装了下wobot,目前还不支持客户端输入中文,待解决。
服务端的代码
require 'socket'               # 获取socket标准库

#puts "I'm wobot,欢迎和我随便聊点什么。"
time = Time.new
questionAliasSetting = Hash.new #声明一个hash
#开始初始化问题和答案
questionAliasSetting.store("你好,很高兴见到你。",Array["你好","hello","您好","你好啊","hi"])
questionAliasSetting.store("我是leo的小兄弟heo。",Array["名字","你叫什么","你是谁","你的名字是什么","姓名","name","我问你是谁","我问你叫什么"])
questionAliasSetting.store("鹅鹅鹅, 曲项向天歌。 白毛浮绿水, 红掌拨清波",Array["王洛宾鹅","关于鹅的诗","鹅","鹅鹅鹅","eee"])
questionAliasSetting.store(time.strftime("%Y-%m-%d"),Array["日期","当前日期","今天","date","today"])
questionAliasSetting.store(time.strftime("%Y-%m-%d %H:%M:%S"),Array["时间","当前时间","现在是","now","time"])

qSetting=Hash.new
questionAliasSetting.each_key do |qamswer|
	questionAliasSetting[qamswer].each do |qquestion|
		qSetting.store(qquestion,qamswer);
	end
end

noAnswer = Array["你问的问题我不知道哪","没听明白你说的","我搞不懂你说的哪","不清楚","不知道"]#没有匹配答案的时候,显示这个

server = TCPServer.open(2000)  # Socket 监听端口为 2000
puts "服务端口启动成功,可以接收请求了。"
loop {    # 永久运行服务
	Thread.start(server.accept) do |client|# 等待客户端连接 
	qput = client.gets().chomp()
	qput = qput.encode("UTF-8")
	puts qput;
	if qSetting[qput]!= nil
		client.puts "  ->"+qSetting[qput]
	else
		client.puts "  ->"+noAnswer[rand(noAnswer.length)]
	end
  client.close                 # 关闭客户端连接
  
  end
}

客户端的代码
require 'socket'      # Sockets 是标准库

hostname = 'localhost'
port = 2000

loop{
qput = gets.chomp()
qput = qput.encode("UTF-8")

s = TCPSocket.open(hostname, port)
s.puts qput

while line = s.gets   # 从 socket 中读取每行数据
  puts line.chop      # 打印到终端
end
s.close               # 关闭 socket 
}

分享到:
评论

相关推荐

    ruby稳定版本1.9.3

    sencha cmd 需要的第三方包,是一个完全面向对象的语言哟,堪比perl

    ruby语言最新版本

    Ruby是一种纯粹的面向对象编程语言。它由日本的松本行弘(まつもとゆきひろ/Yukihiro Matsumoto)创建于1993年。 您可以在 www.ruby-lang.org 的 Ruby 邮件列表上找到松本行弘(まつもとゆきひろ/Yukihiro Matsumoto...

    安装rvm,把ruby版本提升至3.0.0

    Redis安装遇到错误解决方案Error installing redis: redis requires Ruby version >= 2.3.0. 先安装rvm,再把ruby版本提升至2.3.0

    ruby在unbuntu的安装版本

    这是linux版本下的ruby2.1.5版本,亲测可用,现在最新的版本

    Ruby版本管理工具ruby-build.zip

    ruby-build 是一个 rbenv 插件,它提供了一个 rbenv install 命令来在类 UNIX 系统上编译和安装不同版本的 Ruby。你还可以在需要精确控制 Ruby 版本安装的环境中使用不带 rbenv 的 ruby-build。用法在开始之前,...

    为何Ruby 1.9的不兼容性会导致原有Ruby代码无法工作

    一些Ruby程序员将Ruby 1.9的发布看做是迈入Ruby新版本的标志性事件,但他们却发现在1.8版本和1.9版本语言之间的刻意不兼容性会导致原有Ruby代码无法工作。真正的问题是,Ruby 1.9.0发布的原因以及其与Ruby1.8之间的...

    ruby最新版稳定版

    Ruby,一种为简单快捷的面向对象编程(面向对象程序设计)而创的脚本语言,在20世纪90年代由日本人松本行弘(Yukihiro Matsumoto)开发,遵守GPL协议和Ruby License。它的灵感与特性来自于 Perl、Smalltalk、Eiffel、...

    ruby多版本安装包rar

    ruby安装包

    ruby代码ruby代码ruby代码ruby代码ruby代码ruby代码

    ruby代码ruby代码ruby代码ruby代码ruby代码ruby代码ruby代码ruby代码

    ruby-2.7.0.tar.gz

    目前最新的ruby稳定版本是 2.7.0 , 但是官网http://www.ruby-lang.org/zh_cn/downloads/下载太慢,经常下载失败,因此自己找到该文件并存在此处.

    ruby运行环境,ruby安装,windows版本

    windows版本ruby运行环境安装,下载后解压即可,直接双击运行

    Eloquent RUBY kindle 版

    Eloquent RUBY Kindle 版本

    ruby 1.9.3 p484稳定版本

    ruby 1.9.3 p484稳定版本,在windows上直接安装即可

    ruby DBI ruby DBI ruby DBI

    ruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ...

    ruby-1.8.6.zip

    ruby-1.8.6.zip

    Ruby完全自学手册 下

    《Ruby完全自学手册》是一本完全覆盖Ruby和Ruby on Rails的完全自学手册。《Ruby完全自学手册》的特色是由浅入深、循序渐进,注重理论和实践的结合。虽然定位为入门手册,但是依然涉及许多高级技术和应用,覆盖到的...

    versionomy, ruby的通用版本号类.zip

    versionomy, ruby的通用版本号类 VersionomyVersionomy是一个通用版本号库。 它提供了用来表示。操作。分析和比较各种版本模式中的版本号的工具。本文档概述了Versionomy的特性,并提供了快速概要和功能列表。 有关...

    ruby2.1.6安装文件

    ruby新版本EXE文件,比较稳定的版本,现在ruby资源比较少。

    ruby、rvm离线安装包

    ruby、rvm离线安装包 可用于 redis5.0 以下版本的集群安装部署,解压后,对相关资源进行编译安装即可,...ruby 版本号为:2.5.1 rvm 版本号为:1.29.9 另附上两个 redis 的 gem 包 redis-4.0.3.gem、redis-5.0.6.gem

    ruby2ruby.zip

    ruby2ruby 提供一些用来根据 RubyParser 兼容的 Sexps 轻松生成纯 Ruby 代码的方法。可在 Ruby 中轻松实现动态语言处理。 标签:ruby2ruby

Global site tag (gtag.js) - Google Analytics