加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
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
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)
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)
客户端传'XXXX+XXXX'形式的字符串给服务器,然后服务器把加得的结果返回……
(如图)
|