Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.12.2013, 11:34   #1
pufystyj
Форумчанин
 
Аватар для pufystyj
 
Регистрация: 10.11.2010
Сообщений: 569
По умолчанию Работа с сетью. PrintWriter

Всем добрый день. Сижу, пытаюсь написать простенький сервер. Задача не сложная, да и делал я такое... Но не в этот раз... Уже 3-й час бьюсь головой об стенку, пол и потолок ибо не понимаю почему не работает вот этот код:
Код:
ServerSocket sSocket = new ServerSocket(1555);

Socket incoming = sSocket.accept();

outStream = incoming.getOutputStream();

in = new Scanner(inStream);
out = new PrintWriter(outStream);

out.write(234);
out.flush();
Все просто, отправить целочисленное значение (4-х байтовый int) по сети. Клиент:
Код:
Socket incoming = new Socket("localhost", 1555);

inStream = incoming.getInputStream();
outStream = incoming.getOutputStream();

in = new Scanner(inStream);
out = new PrintWriter(outStream, true);

System.out.println(in.nextInt());
Коннектится хорошо... Сервер отправляет значение (ну по логах видно, что по идее отправил). Но клиент все ждет ответа... и таки не получает его... логично было бы использовать out.flush() , но я УЖЕ его использую и ничего...

Уважаемые форумчане, пожалуйста ткните мне пальцем что я делаю не так, а то скоро или голову сломаю, или стену.

Если строку отправлять и принимать, то все работает... Но тогда зачем метод nextInt() ?
Это ещё не конец и даже не начало конца, это возможно только конец начала.

Последний раз редактировалось pufystyj; 27.12.2013 в 12:16.
pufystyj вне форума Ответить с цитированием
Старый 27.12.2013, 12:26   #2
pufystyj
Форумчанин
 
Аватар для pufystyj
 
Регистрация: 10.11.2010
Сообщений: 569
По умолчанию

Сори за даблпост, но все же...

Помогло такое:
Код:
out.write(55555 + "\n");
Но не пойму, получается число 55555 конвертируется в строку и отправляется вместо 4 байтов (то есть int) все 6!

Посоветуйте более оптимальную реализации, где можно работать с байтами, а не со строками.
Это ещё не конец и даже не начало конца, это возможно только конец начала.
pufystyj вне форума Ответить с цитированием
Старый 27.12.2013, 20:11   #3
darknim
Пользователь
 
Регистрация: 14.12.2012
Сообщений: 36
По умолчанию

Вот тебе пример ссылка
darknim вне форума Ответить с цитированием
Старый 28.12.2013, 19:11   #4
Marshal_A
Пользователь
 
Регистрация: 28.12.2013
Сообщений: 12
По умолчанию

Сталкивался с такой проблемой , так и не решил(((
http://www.work-zilla.com?ref=177050
Marshal_A вне форума Ответить с цитированием
Старый 28.12.2013, 20:15   #5
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

PrintWriter и Scanner предназначены для работы с текстом. Если хотите пересылать байты, то используйте OutputStream/InputStream. Также, важно помнить, что вызов метода write на OutputStream с аргументом типа int обрежет верхние 24 бита, поскольку предназначен для пересылки байтов. Если нужно пересылать конкретно числа, или другие примтивные типы, то можно использовать классы DataOutputStream/DataInputStream.
netrino вне форума Ответить с цитированием
Старый 29.12.2013, 08:04   #6
pufystyj
Форумчанин
 
Аватар для pufystyj
 
Регистрация: 10.11.2010
Сообщений: 569
По умолчанию

ДА, реально проще для этой цели использовать DataInputStream. Всем спасибо.
Это ещё не конец и даже не начало конца, это возможно только конец начала.
pufystyj вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с сетью в си pufystyj Общие вопросы C/C++ 2 30.03.2011 00:33
Работа с сетью tuno4er Помощь студентам 0 28.02.2011 22:43
Работа с сетью alexander_student C/C++ Сетевое программирование 3 19.11.2010 11:59
Работа с сетью Silentdi Работа с сетью в Delphi 0 24.09.2010 15:01
C++ работа с сетью. n4ela Общие вопросы C/C++ 3 27.01.2010 15:31