查看: 3173|回复: 2

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

[复制链接]
梦石
1
星屑
24088
在线时间
3339 小时
注册时间
2011-7-8
回帖
3862

开拓者

发表于 2016-1-8 14:48:09 | 显示全部楼层 |阅读模式

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

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

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

不知道有没有发错区……

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

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

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

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

server0.rb
[pre lang="ruby"]require 'socket'
class Server_for_RM
        attr_reader :run_times
        def initialize(ip,port)
                @run_times = 0
                start_server(ip,port)
        end
        # 这个函数是从ruby教科书上抄的
        def start_server(ip,port)
                server = TCPServer.new(ip,port)
                loop do
                  Thread.start(server.accept) do |client|
                        text = client.recv_nonblock(1024)
                        print "#{@run_times}\nAccepted connection from #{client.peeraddr[2]}\n\t>>#{text}\n"
                        text_r = return_msg(text)
                        # "&|--|&":分割符;
                        # rand().to_s:增长数据;
                        # "over":数据结尾
                        client.puts text_r+"&|--|&"+rand().to_s+"over"
                        print "\t<<#{text_r}\n"
                        print "Closing connection to #{client.peeraddr[2]}\n\n"
                        client.close
                        @run_times += 1
                  end
                end
        end
        # 处理数据的函数
        def return_msg(text)
                # 除去传来数据末尾的over
                text.gsub!(/over$/,"")
                # 如果传来的数据是'XXX+XXX'
                if text =~ /^[0-9]+\+[0-9]+$/
                        ary = text.split("+")
                        return "#{ary[0].to_i+ary[1].to_i}"
                else
                        return text
                end
        end
end
# 这里修改ip和端口
Server_for_RM.new('127.0.0.1',9701)
[/pre]

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

(如图)

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

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2016-1-11 13:06:52 | 显示全部楼层
毕竟 ruby 这语言的最大应用就是做后端嘛= =

点评

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

使用道具 举报

梦石
0
星屑
50
在线时间
138 小时
注册时间
2015-6-9
回帖
27
发表于 2016-1-13 15:34:24 来自手机 | 显示全部楼层
这个是不是连接你那个服务器的??

点评

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

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部