Tôi đang làm việc trên ứng dụng khách/máy chủ Ruby TCP bằng cách sử dụng GServer và TCPSocket. Tôi đã gặp phải một vấn đề mà tôi không hiểu. Ứng dụng khách TCPSocket của tôi kết nối thành công với Máy chủ GS của tôi, nhưng tôi chỉ có thể gửi dữ liệu bằng cách sử dụng các lần đặt. Các cuộc gọi tới TCPSocket.send hoặc TCPSocket.write không làm gì cả. Có một số phép thuật mà tôi đang thiếu?Ruby TCPSocket viết không hoạt động, nhưng đặt không?
tcp_client = TCPSocket.new(ipaddr, port)
tcp_client.puts('Z') # -> GServer receives "Z\n"
Nhưng nếu tôi sử dụng ghi hoặc gửi ...
tcp_client = TCPSocket.new(ipaddr, port)
tcp_client.write('Z') # -> nothing is received
tcp_client.send('Z') # -> nothing is received
Thanks for the help
thông tin bổ sung:
- Hành vi này là như nhau trên Linux & của Windows .
- Xối rửa ổ cắm sau khi ghi không làm thay đổi hành vi.
Tôi nghĩ rằng tôi đã sử dụng recvfrom cho phía máy chủ, nhưng hóa ra tôi đã sử dụng được, đó là tìm kiếm các ký tự dòng mới. – nathan