gpt4 book ai didi

ruby - 如何在服务器/客户端上使用Ruby的write_nonblock/read_nonblock?

转载 作者:行者123 更新时间:2023-12-03 08:04:27 34 4
gpt4 key购买 nike

我正在尝试将Ruby与服务器配合使用。我正在从玩家处获得回车或字符串,以便服务器玩起 war 之手(纸牌游戏)。

真正令人沮丧的是,我正在使用read和write_nonblock,并且不断遇到错误,这些错误我不知道为什么会出现,因此不知道如何解决。

Errno::EAGAIN: Resource temporarily unavailable - read would block #etc. etc. 

因此...如何正确使用读写non_block在服务器和客户端上发送和接收数据(以便触发事件)? (我是一名新程序员,所以解释越简单越好。)

最佳答案

需要一对方法#write(read)_nonblock,以便在尚未准备好发送或接收数据的情况下对所需的代码进行处理。 ruby docs在方法上说以下内容:

If the exception is Errno::EWOULDBLOCK or Errno::AGAIN, it is extended by IO::WaitReadable. So IO::WaitReadable can be used to rescue the exceptions for retrying read_nonblock.



只是捕获 Errno::EAGAIN异常。

注意retry关键字使方法类似于通常的 #write(read):
begin
io.write_nonblock
rescue Errno::EAGAIN
retry # or do something else
end

关于ruby - 如何在服务器/客户端上使用Ruby的write_nonblock/read_nonblock?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20604130/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com