が「TCPによる接続をリセットする」エラーが発生しました。以下のコードは、TCPサーバーとクライアントの作成を目的としています。 しかし、クライアントスレッドの数が多すぎると(たとえば、100スレッド)、クライアントは「ピアによって接続がリセットされました」というエラーを受け取ります。私はエラーの原因を見つけることができないので、私はあなたの助けが必要です。新しいtcpソケット
サーバー:
#!/usr/bin/env ruby1.9
# -*- coding: utf-8 -*-
require "socket"
crab = TCPServer.new "127.0.0.1", 8087
while browser = crab.accept
Thread.new browser do | client |
puts client.gets
client.puts "hello"
client.close
end
end
クライアント:
#!/usr/bin/env ruby1.9
# -*- coding: utf-8 -*-
require "socket"
threads_arr = []
ARGV[0].to_i.times do
t = Thread.new do
client = TCPSocket.new "127.0.0.1", 8087
client.puts "hello"
client.gets
client.close
end
threads_arr << t
end
threads_arr.each do | t |
t.join
end
Envrionment:
のMac OS X 10.6.8
ルビー1.8.7p174 /ルビー1.9.2p180
私が見るには、問題はバックログが小さすぎるということでした。 – lululau