Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Клиент-сервер 
:(
    Опции темы
Vidocq
Дата 25.3.2005, 01:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 431
Регистрация: 15.12.2004
Где: Запорожье, Украин а

Репутация: 1
Всего: 7



Написал я типа приложение smile
Как и задумывал: читаю файл, передаю байты, на сервере читаю их, пишу в файл.
Небольшая ашипк есть smile
Не выходит из цикла smile
Просьба помочь с анализом кода

Вот сервер:
Код

import java.io.*;
import java.net.*;

public class JabberServer {

  public static final int PORT = 8080;

  public static void main(String[] args)
      throws IOException {
    ServerSocket s = new ServerSocket(PORT);
    System.out.println("Started: " + s);
    try {

      Socket socket = s.accept();
      try {
        System.out.println("Connection accepted: "+ socket);
        BufferedReader in = new BufferedReader(new InputStreamReader(
                                                   socket.getInputStream()));

        PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(
                                              socket.getOutputStream())),true);
        PrintWriter inFile = new PrintWriter(new BufferedWriter(new FileWriter("IODemo.txt")));
        int lineCount = 1;
        String str = new String();

        while ((str = in.readLine())!= null) {
          if (str.equals("END")) break;//System.exit(0);
          System.out.println(str);
          inFile.println(lineCount++ + ": " + str);

        }

      // всегда закрываем оба сокета...
      }
      finally {
        System.out.println("closing...");
        socket.close();
        //inFile.close();
      }
    }
    finally
    {
      s.close();
    }
  }
} ///:~


Вот клиент:
Код

import java.net.*;
import java.io.*;

public class JabberClient {
  public static void main(String[] args) throws IOException {
    InetAddress addr =   InetAddress.getByName(null);

    System.out.println("addr = " + addr);
    Socket socket = new Socket(addr, JabberServer.PORT);

    try {
      System.out.println("socket = " + socket);


      PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(
                                            socket.getOutputStream())),true);

      BufferedReader file = new BufferedReader(new FileReader("README.txt"));
      String s, s2 = new String();

      while((s = file.readLine())!= null){
               s2 += s + "\n";
               out.println(s2);
      }
      out.println("END");

      file.close();
    }
    finally {
      System.out.println("closing...");
      socket.close();


    }
  }
} ///:~



--------------------
Всё течёт ©
PM MAIL ICQ   Вверх
Domestic Cat
Дата 25.3.2005, 02:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 1
Всего: 172



Цитата(Vidocq @ 24.3.2005, 16:58)
Не выходит из цикла smile


Из какого цикла?

ЗЫ.
Цитата
Где: Аргентина, Буэнос-Айрес

А почему не Антарктида ? smile Или Сомали?


--------------------

PM   Вверх
ZAVS
Дата 25.3.2005, 03:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 25.2.2004
Где: ЕРЕВАН

Репутация: нет
Всего: 1



у меня четко работает
просто от меня добавил

Код

finally {
        System.out.println("closing...");
        socket.close();
 //************       

      if(inFile!=null){
          inFile.close();
        }
//**************

      }

--------------------
Учись студент доцентом станешь :)
PM MAIL ICQ   Вверх
Vidocq
Дата 26.3.2005, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 431
Регистрация: 15.12.2004
Где: Запорожье, Украин а

Репутация: 1
Всего: 7



Domestic Cat
из бесконечного цикла

Код

while ((str = in.readLine())!= null) {
          if (str.equals("END")) break; //Хотя должен вот здесь
          //я же пишу - в клиенте out.println("END"); 
          System.out.println(str);
          inFile.println(lineCount++ + ": " + str);

        }


Так в чем проблема?

Цитата

А почему не Антарктида ?  Или Сомали?

Уже и поприкалываться нельзя smile


ZAVS
Так говоришь, у тя работает всё? Странно.


--------------------
Всё течёт ©
PM MAIL ICQ   Вверх
ZAVS
Дата 26.3.2005, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 25.2.2004
Где: ЕРЕВАН

Репутация: нет
Всего: 1



а ты дебагировать попробовал??
--------------------
Учись студент доцентом станешь :)
PM MAIL ICQ   Вверх
Domestic Cat
Дата 26.3.2005, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 1
Всего: 172



А что он делает в цикле, если из него не выходит? Он же должен тогда выводить что-то в консоль?


--------------------

PM   Вверх
ZAVS
Дата 27.3.2005, 01:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 25.2.2004
Где: ЕРЕВАН

Репутация: нет
Всего: 1



smile
--------------------
Учись студент доцентом станешь :)
PM MAIL ICQ   Вверх
Vidocq
Дата 27.3.2005, 04:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 431
Регистрация: 15.12.2004
Где: Запорожье, Украин а

Репутация: 1
Всего: 7



Domestic Cat
Цитата

А что он делает в цикле, если из него не выходит? Он же должен тогда выводить что-то в консоль?


Так он и выводит - бесконечно распечатывает в консоли файл и бесконечно (зацикленно значитьsmile пишет в файл


--------------------
Всё течёт ©
PM MAIL ICQ   Вверх
Domestic Cat
Дата 27.3.2005, 05:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 1
Всего: 172



Попробуй для начала в клиенте
Код

while((s = file.readLine())!= null){
               s2 += s + "\n";
               out.println(s2);
      }

переписать на
Код

while((s = file.readLine())!= null){
               s2 += s + "\n";
              
      }
out.println(s2);



--------------------

PM   Вверх
Vidocq
Дата 28.3.2005, 02:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 431
Регистрация: 15.12.2004
Где: Запорожье, Украин а

Репутация: 1
Всего: 7



Domestic Cat
Слушай, ты знал! smile
Спаибо - всё работает так, как надо! smile

Ээээп, только в файл не пишет, блин smile


--------------------
Всё течёт ©
PM MAIL ICQ   Вверх
Domestic Cat
Дата 28.3.2005, 03:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 1
Всего: 172



Цитата(Vidocq @ 27.3.2005, 17:31)
Ээээп, только в файл не пишет, блин


А ты его закрываешь ?
Код

inFile.close();



--------------------

PM   Вверх
Vidocq
Дата 29.3.2005, 01:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 431
Регистрация: 15.12.2004
Где: Запорожье, Украин а

Репутация: 1
Всего: 7



Domestic Cat

Цитата

А ты его закрываешь ?
Код

inFile.close();



А надо? smile))) smile

Пасибо за помощь, дружище! Всё пашет как если б ты сам код писал!

Маленькая вопроса: я хочу чтоб

Код

inFile.close();


у меня был в блоке finally, а его там матюкает джава. Чего так?

Это сообщение отредактировал(а) Vidocq - 29.3.2005, 01:14


--------------------
Всё течёт ©
PM MAIL ICQ   Вверх
Domestic Cat
Дата 29.3.2005, 01:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 1
Всего: 172



Цитата(Vidocq @ 28.3.2005, 16:08)

Пасибо за помощь, дружище! Всё пашет как если б ты сам код писал!

Да пожалуйста smile


--------------------

PM   Вверх
Domestic Cat
Дата 29.3.2005, 01:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 1
Всего: 172



Нужно перед вторым try написать PrintWriter inFile = null;, внутри вмест PrintWriter inFile = ... сделать inFile = ...;


--------------------

PM   Вверх
Vidocq
Дата 30.3.2005, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 431
Регистрация: 15.12.2004
Где: Запорожье, Украин а

Репутация: 1
Всего: 7



Domestic Cat
Блин, у меня с видимостью переменных всегда проблемы smile

Спасибо, всё так и есть. Пашет афигенно! smile)))


--------------------
Всё течёт ©
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Работа с сетью | Следующая тема »


 




[ Время генерации скрипта: 0.0727 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.