информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Портрет посетителяГде водятся OGRыSpanning Tree Protocol: недокументированное применение
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Фишинговая атака на Python-разработчиков 
 ФБР нашла русский след в атаках... 
 Массовый взлом SharePoint 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[Java] ServerSocket затрахал... 20.08.01 19:20  
Автор: max133 Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Господа,

Надо написать на java обычное серверное приложение, которое слушает какой-то порт и каждого подключившегося клиента обрабатывает в отдельном потоке. Но проблема в следующем: класс ServerSocket подключает не больше 50 (в среднем) клиентов одновременно.
Надо гораздо больше, подскажите как это реализовать.

Заранее благодарю,
Макс.
[Java] ServerSocket затрахал... 21.08.01 10:58  
Автор: XR <eXtremal Research> Статус: The Elderman
Отредактировано 21.08.01 14:24  Количество правок: 1
<"чистая" ссылка>
> Господа,
>
> Надо написать на java обычное серверное приложение, которое
> слушает какой-то порт и каждого подключившегося клиента
> обрабатывает в отдельном потоке. Но проблема в следующем:
> класс ServerSocket подключает не больше 50 (в среднем)
> клиентов одновременно.

покажи код, иначе не совсем понятно, что ты делаешь....
....наверное что то типа

ServerSocket ss;
.........
Socket s = ss.accept();
... так ?

и где затык ? какие исключения ловятся ?


> Надо гораздо больше, подскажите как это реализовать.
>
> Заранее благодарю,
> Макс.
[Java] ServerSocket затрахал... 22.08.01 11:40  
Автор: max133 Статус: Незарегистрированный пользователь
<"чистая" ссылка>

Выглядит все примерно так (в общем стандартно). В main() создается экземрляр NewServer и вызывается serveThem().
****************************************************
public NewServer(){
try {
listenSocket = new ServerSocket(SERVER_PORT, backLog);
// backLog у меня вообще ни на что не влияет, хоть 2, хоть 200,
// все равно клиентов он присоединит около 50
// ??вообще, очень бы хотелось посмотреть содержимое этой
//очереди
} catch (IOException e) {
System.exit(1);
}
}

public void serveThem(){
Socket clientSocket = null;
try {
while (keepRunning) {
clientSocket = listenSocket.accept();
Servicer newHandler = new Servicer(clientSocket);
Thread newHandlerThread = new Thread(newHandler);
newHandlerThread.start();
}
} catch (IOException e) {
System.err.println("error: I/O");
}
}
*********************************************************

Примерно 50-й клиент (и все остальные), пытаясь открыть сокет на сервере (Socket qSocket = new Socket(serverName, SERVER_PORT)),
вылетает со следующим исключением
java.net.SocketException: connect
[Java] ServerSocket затрахал... 23.08.01 13:48  
Автор: XR <eXtremal Research> Статус: The Elderman
<"чистая" ссылка>
>
> Выглядит все примерно так (в общем стандартно). В main()
> создается экземрляр NewServer и вызывается serveThem().
> ****************************************************
> public NewServer(){
> try {
> listenSocket = new ServerSocket(SERVER_PORT, backLog);
> // backLog у меня вообще ни на что не влияет, хоть 2,
> хоть 200,


> // все равно клиентов он присоединит около 50
> // ??вообще, очень бы хотелось посмотреть содержимое

Берешь исходники библиотек (раньше клались в JDK) или любой Java-декомпилятор и смотришь соответствующий кусок библиотек
в исходном коде ... но тут скорее всего все чисто ...

> этой
> //очереди
> } catch (IOException e) {
> System.exit(1);
> }
> }
>
> public void serveThem(){
> Socket clientSocket = null;
> try {
> while (keepRunning) {
> clientSocket = listenSocket.accept();
> Servicer newHandler = new Servicer(clientSocket);
> Thread newHandlerThread = new Thread(newHandler);
> newHandlerThread.start();
> }
> } catch (IOException e) {
> System.err.println("error: I/O");
> }
> }
> ********************************************************
> */

>
> Примерно 50-й клиент (и все остальные), пытаясь открыть
> сокет на сервере (Socket qSocket = new Socket(serverName,
> SERVER_PORT)),


Они все 50 должны иметь соединения с сервером или по дороге иногда закрываются ?
в смысле ты нигде .close() не забыл ?

> вылетает со следующим исключением
> java.net.SocketException: connect

Скорее всего проблема в подходе к границе максимального числа
открытых соединений для данной OS ....

BTW: OS какая кстати ?

Если Win9x то оно а вот если Sоlaris то это уже вопрос к JVM

PS: что там насчет netstat -a | wc -l ???
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach