Ruby TCPSocket write 不起作用,但是 puts 可以吗?

标签 ruby sockets tcp

我正在使用 GServer 和 TCPSocket 开发 Ruby TCP 客户端/服务器应用程序。我遇到了一个我不明白的问题。我的 TCPSocket 客户端成功连接到我的 GServer,但我只能使用 puts 发送数据。调用 TCPSocket.send 或 TCPSocket.write 什么都不做。有没有我缺少的魔法?

tcp_client = TCPSocket.new( ipaddr, port )
tcp_client.puts( 'Z' ) # -> GServer receives "Z\n"

但是如果我使用 write 或 send...

tcp_client = TCPSocket.new( ipaddr, port )
tcp_client.write( 'Z' ) # -> nothing is received
tcp_client.send( 'Z' ) # -> nothing is received

感谢帮助

附加信息:

  1. Linux 和 Windows 上的行为相同。
  2. 写入后刷新套接字不会改变行为。

最佳答案

您确定问题不在服务器端吗?您是否正在使用某种方法来读取需要字符串或以“\n”结尾的内容?

关于Ruby TCPSocket write 不起作用,但是 puts 可以吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1147852/

相关文章:

ruby - 在 Ruby 中高效地将数据从大型 CSV(或数据流)导入 Neo4j

java - 如何检测重传的数据包以在java中的TCP套接字中丢弃它们

c - C 中的同步回调

java - 需要指导来选择正确的方式来捕获相机输入

php - Apache - 处理 TCP 连接,但不处理 HTTP 请求

Ruby 一元运算符 `&` 仅对方法参数有效

ruby - 防止 ruby​​ sinatra 中的 session 固定

ruby - Ruby 中的 block 和产量

sockets - 当数据发送速度快于处理速度时,套接字将如何操作?

c++ - socket编程tcp发送文件