Форум программистов, компьютерный форум, киберфорум
Java: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
 Аватар для moramar
0 / 0 / 0
Регистрация: 02.02.2013
Сообщений: 42

Client-Server trouble

29.04.2016, 21:25. Показов 981. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пытаюсь написать небольшой конвертер валют, застрял на проблеме общения клиент сервера. Знатоки, требуются ваши светлые головы

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public class NetWork extends Thread {
    int serverPort = 6666;
    String address = "127.0.0.1";
    int coef;
    public int sendMessage(String line) {
        try {
            InetAddress ipAddress = InetAddress.getByName(address);
            System.out.println("Any of you heard of a socket with IP address " + address + " and port " + serverPort + "?");
            Socket socket = new Socket(ipAddress, serverPort); // создаем сокет используя IP-адрес и порт сервера.
            System.out.println("Yes! I just got hold of the program.");
 
            InputStream sin = socket.getInputStream();
            OutputStream sout = socket.getOutputStream();
            DataInputStream in = new DataInputStream(sin);
            DataOutputStream out = new DataOutputStream(sout);            
            System.out.println();
            System.out.println("Sending this line to the server...");
            out.writeUTF(line); // отсылаем введенную строку текста серверу.
            out.flush(); // заставляем поток закончить передачу данных.
            coef = in.readInt(); // ждем пока сервер отошлет строку текста.
            System.out.println("The server sent me this : " + coef);
        } catch (Exception e) {e.printStackTrace();}
        return coef;
    }
}
Ругается собственно на 3 строку следующего кода:
Java
1
2
3
        NetWork net = new NetWork();
        int value = net.sendMessage("usd");
        editText2.setText(value);
Собственно в чем трабла, на сервер не приходит вроде как запрос, пробовал IP и с инета(46.185.85.227) и как локалхост... т.к. я пишу клиент под андроид и запускаю с эмулятора то не особо понимаю принцип работы сети в данный момент и кажется локалхост не вариант...

На всякий залеплю ещё серверную часть, хоть вроде и должно работать как часики(не тестил).
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
public class Server {
    public static void main (String[] arg0){
        int port = 6666; 
          try {
            ServerSocket ss = new ServerSocket(port); // создаем сокет сервера и привязываем его к вышеуказанному порту
            System.out.println("Waiting for a client...");
            Socket socket = ss.accept(); // заставляем сервер ждать подключений и выводим сообщение когда кто-то связался с сервером
            System.out.println("Got a client :) ... Finally, someone saw me through all the cover!");
            System.out.println();
            // Берем входной и выходной потоки сокета, теперь можем получать и отсылать данные клиенту.
            InputStream sin = socket.getInputStream();
            OutputStream sout = socket.getOutputStream();
            // Конвертируем потоки в другой тип, чтоб легче обрабатывать текстовые сообщения.
            DataInputStream in = new DataInputStream(sin);
            DataOutputStream out = new DataOutputStream(sout);
            String line = null;
            while(true) {
                line = in.readUTF(); // ожидаем пока клиент пришлет строку текста.
                System.out.println("The dumb client just sent me this line : " + line);
                System.out.println("I'm sending it back...");
                out.writeInt(calculation(line)); // отсылаем клиенту обратно ту самую строку текста.
                out.flush(); // заставляем поток закончить передачу данных.
                System.out.println("Waiting for the next line...");
                System.out.println();
            }
        } catch(Exception x) { x.printStackTrace(); }
    }
 
    private static Integer calculation(String line) {
        int usd = 1;
        int eur = (int) 0.89;
        int rub = (int) 66.49;
        int uah = (int) 25.64;
        String usdS = "usd";
        String rubS = "rub";
        String uahS = "uah";
        String eurS = "eur";
        if(line.equals(usdS))
            return usd;
        if (line.equals(rubS))
            return rub;
        if (line.equals(uahS))
            return uah;
        else
            return eur;
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.04.2016, 21:25
Ответы с готовыми решениями:

Socket, Client - Server
Создаю Клиент Серверное приложения, столкнулся с проблемой, если открыть клиент и сервер на одном компютере, то все работает, я указал в...

netty client-server
Здравствуйте. я создал сервер. // NUMTHBOSS threads max, Memory limitation: 1MB by channel, 1GB global, 100 ms of timeout ...

Client-server на java
Решил написать простейший сервер.Вот код:(это клиент)! package educ.mark; import java.awt.FlowLayout; import...

3
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
29.04.2016, 21:30
1) бросай нафиг все эмуляторы, просто реализуй это все на Джаве, потом засунешь куда надо
2) для настоящей простоты, учитывая что отправляешь простой стринг, использую Сканнер для чтения и ПринтВрайтер для отправки строки
3) на локалхосте должно работать все
4) пропиши в серваке метод выхода из вечного цикла, например если приходит строка стоп
5) возьми книгу Хорстманна, там есть пример простенького клиент-сервера, по нему и проверь
0
 Аватар для moramar
0 / 0 / 0
Регистрация: 02.02.2013
Сообщений: 42
29.04.2016, 22:13  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
1) бросай нафиг все эмуляторы, просто реализуй это все на Джаве, потом засунешь куда надо
2) для настоящей простоты, учитывая что отправляешь простой стринг, использую Сканнер для чтения и ПринтВрайтер для отправки строки
1)Не понял насчет эмуляторов, мне же надо как-то проверять работает приложение или нет)
2) а при чем тут сканер? это же считывание с консоли если я ничего не путаю, а мне по итогу это надо будет как-то присобачить к обработчику события, чтоб при нажатии отправлялся запрос при котором я получал цифру необходимую мне, в зависимости от нажатой кнопки.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
30.04.2016, 14:09
1) проверять можно без эмулятора андроида, просто в консольке, например использовать виндосовский телнет. Я к тому что сначала сделай по простому, прикрутить свистелки и перделки потом можно.
2) путаешь, сканнер это обертка для считывания чего угодно с инпут стрима, он катит и для сокетного считывания.
еще раз рекомендую открыть Хорстманна
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.04.2016, 14:09
Помогаю со студенческими работами здесь

Client - Server (with TCP/IP Socket)
Hi dear! Подскажите, пожалуйста, что поправить в моем коде, чтобы сервер не вырубался сразу после того, как умрет сокет, а ждал нового...

Client-server app Android - pc. Готовое решение, осталось долатать
Здравствуйте. Искал, думаю, как и все, "на просторах интернета", как сделать простое клиент - серверное приложение - "Минимум кода -...

String trouble
public static void main(String args) { // TODO code application logic here String array; array = new String; ...

Udp server-client. server ничего не принимает
Клиент отправляет. сервер запускается, но чтение IdUDPServer1UDPRead не выполняется. подскажите пожалуйста почему сервер не читает. ...

Client-Server: GET request refused by the server
Пишу Client-Server (Ubuntu), имеется рабочая версия для проверки. Запустил сервер, vitaly@vitaly-laptop:~/Desktop$ ./ft 10000 In...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru