设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2552|回复: 2
打印 上一主题 下一主题

[RMXP发布] 自制ruby服务器可以实现加法的计算!

[复制链接]

Lv5.捕梦者 (版主)

梦石
1
星屑
23994
在线时间
3339 小时
注册时间
2011-7-8
帖子
3926

开拓者

跳转到指定楼层
1
发表于 2016-1-8 14:48:09 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 guoxiaomi 于 2016-1-8 14:51 编辑

不知道有没有发错区……

若干年前,从这个网站上弄到了一个联机教程,还加了那个qq群,后来群主觉得大家都在潜水就把群关了。

原来的教程是开2个RMXP,一个做服务器一个做客户端,但是总觉得RMXP做服务器特别蛋疼,所以写了个ruby的服务器。。。

吐槽一下,RM站上各种简单联机教程……似乎就这一个没有明显bug……

没有RTP的附件:
RM与ruby通信-02.zip (1014.03 KB, 下载次数: 125)

server0.rb
RUBY 代码复制
  1. require 'socket'
  2. class Server_for_RM
  3.         attr_reader :run_times
  4.         def initialize(ip,port)
  5.                 @run_times = 0
  6.                 start_server(ip,port)
  7.         end
  8.         # 这个函数是从ruby教科书上抄的
  9.         def start_server(ip,port)
  10.                 server = TCPServer.new(ip,port)
  11.                 loop do
  12.                   Thread.start(server.accept) do |client|
  13.                         text = client.recv_nonblock(1024)
  14.                         print "#{@run_times}\nAccepted connection from #{client.peeraddr[2]}\n\t>>#{text}\n"
  15.                         text_r = return_msg(text)
  16.                         # "&|--|&":分割符;
  17.                         # rand().to_s:增长数据;
  18.                         # "over":数据结尾
  19.                         client.puts text_r+"&|--|&"+rand().to_s+"over"
  20.                         print "\t<<#{text_r}\n"
  21.                         print "Closing connection to #{client.peeraddr[2]}\n\n"
  22.                         client.close
  23.                         @run_times += 1
  24.                   end
  25.                 end
  26.         end
  27.         # 处理数据的函数
  28.         def return_msg(text)
  29.                 # 除去传来数据末尾的over
  30.                 text.gsub!(/over$/,"")
  31.                 # 如果传来的数据是'XXX+XXX'
  32.                 if text =~ /^[0-9]+\+[0-9]+$/
  33.                         ary = text.split("+")
  34.                         return "#{ary[0].to_i+ary[1].to_i}"
  35.                 else
  36.                         return text
  37.                 end
  38.         end
  39. end
  40. # 这里修改ip和端口
  41. Server_for_RM.new('127.0.0.1',9701)


客户端传'XXXX+XXXX'形式的字符串给服务器,然后服务器把加得的结果返回……

(如图)

熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

2
发表于 2016-1-11 13:06:52 | 只看该作者
毕竟 ruby 这语言的最大应用就是做后端嘛= =

点评

不过我觉得这个服务器传出的消息客户端经常收不到,但用rmxp做的客户端就没有任何问题……怀疑是socket.dll被作者做了点手脚啥的。。。  发表于 2016-1-15 11:55
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
138 小时
注册时间
2015-6-9
帖子
30
3
发表于 2016-1-13 15:34:24 手机端发表。 | 只看该作者
这个是不是连接你那个服务器的??

点评

是的,但是我发现还是不太好。。。  发表于 2016-1-15 11:52
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-21 21:49

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表