我正在学习ruby套接字编程,而我正在使用linux OS(确切地说是Ubuntu 16.04)。
以下代码:
require 'socket'
socket = TCPSocket.new('0.0.0.0', 8080)
client = socket.accept
puts "New client! #{client}"
client.write("Hello from server")
client.close
给我以下错误:
sock2.rb:3:in initialize': Connection refused - connect(2) for "0.0.0.0" port 8080 (Errno::ECONNREFUSED)
from sock2.rb:3:in
new'
来自sock2.rb:3:在''
我应该使用不同的IP和端口吗?或者我必须在我的unix系统上进行某种配置,以便客户端和服务器相互通信。
答案 0 :(得分:6)
TCPSocket.new
尝试连接到参数中指定的主机。看起来您正在尝试设置侦听该端口的服务器,因为您应该使用TCPServer
代替:
socket = TCPServer.new('0.0.0.0', 8080)
然后,您可以使用其他客户端连接到此服务器。该客户端可能使用TCPSocket
。