红宝石套接字中的.send()“和.write()有什么区别?

时间:2018-10-07 21:34:22

标签: ruby sockets

require 'socket'

host = 'localhost'
something = 'Ruby'

port = 2000

t = TCPServer.new(host, port)
t.write(something)
t.close


c = TCPServer.new(host, port)
c.send(something)
c.close

这些发送数据的方法之间有什么区别(如果有)?它们是相同的还是比另一种更好地使用?

1 个答案:

答案 0 :(得分:1)

我不相信有什么真正的区别,它是您在许多I / O stdlib中发现的BSD和C ++的宿醉之一。

BSD / C ++的区别在于write等同于send,但未设置任何标志,但是我不确定Ruby版本中是否还可以设置任何标志。

与其他任何IO对象一样,最有用的区别是puts,因为它会自动添加换行符。