2009-10-30 2 views
1

Я разрабатываю серверное/клиентское приложение сокета JAVA для сервера и J2ME для клиента. Все было нормально, когда я тестировал сервер в своих Windows XP. Однако тогда возникла серьезная проблема, когда я развернул мой сервер сокетов на сервер под управлением Windows Server 2003. Мой сервер Windows потерял сетевое соединение, когда мой клиент попытался запросить задачу, требующую от сервера отправки больших данных. Сетевое подключение на сервере было сохранено только в том случае, если я отключил сетевой кабель и снова подключил его.Java-сервер сокетов делает сеть сервера Windows 2003

Я искал решения в Интернете и пробовал много идей: - уточненный код: открытое и закрытое соединение тщательно в блоке «finally»; назначил заказ при открытии и закрытии In-OutStream; увеличенный размер буфера; увеличенный размер кучи java; - Сброс & исправленный Winsock сервера. - объявить IP-адрес для прослушивания (ну, у моего Windows Server 2 IP: один для локального и другого для Интернета)

Но, к сожалению, все не меняется. Мой сервер все еще умирает, если он должен отправить большое количество данных. Кто-нибудь встречал проблему, как я? Или у кого-нибудь есть идеи для меня?

Любая помощь приветствуется.

+0

Вы изучили конфигурацию размера сетевого пакета этого сервера? – rsp

ответ

0

Я бы предположил, что проблема может быть не в вашей программе Java. Однако, для дальнейшего устранения неполадок, я предлагаю вам создать двоичный график дерева поиска. Определите тест, который может сократить проблемную область пополам и повторить.

Я давно видел одну проблему, когда большие файлы не могли быть перенесены, поскольку терминатор был удален из сети 10-Base2. Вы можете попробовать переносить большие файлы с помощью другого программного обеспечения, такого как FTP, чтобы убедиться, что скорость передачи имеет смысл и т. Д.

Вы можете использовать ping для отправки пакетов различного размера на хост Windows 2003. Вы можете запустить клиент локально на сервере и посмотреть, есть ли у него такая же проблема.

Возможно, у вас есть частично проложенный сетевой адаптер, маршрутизатор или кабель ethernet. Несколько лет назад это было case at LAX.

Смежные вопросы