Приведенный ниже код предназначен для создания TCP-сервера и клиентов.Но когда число клиентских потоков слишком велико (например, 100 потоков), клиент получает ошибку «Сброс соединения по одноранговой сети».Я не могу найти причину ошибки, поэтому мне нужна ваша помощь.
Сервер:
#!/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
Окружение:
Mac OS X 10.6.8
ruby 1.8.7p174 / ruby 1.9.2p180