Форум программистов, компьютерный форум, киберфорум
Java: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 15.03.2015
Сообщений: 1

Клиент сервер

15.03.2015, 13:03. Показов 2090. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, нужна помощь с программой
Мне нужно: Клиент посылает два числа серверу и одну из математических операций: «*», «/», «+», «–» ,– сервер соответственно умножает, делит, складывает либо вычитает эти два числа и посылает ответ назад клиенту.

вот код для клиента:
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
package kliee;
import java.net.*;
import java.io.*;
 
class ClientTCP{
        public static void main(String args[]){  
            Socket sock;
            InputStream is;
            OutputStream os;
            BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); 
            try{
            sock=new Socket(InetAddress.getByName("localhost"),1024);
            is=sock.getInputStream();
            os=sock.getOutputStream();
            while(true){
                                System.out.println("Введите, что хотите передать серверу: ");
                String stringmessage=br.readLine();
                if(stringmessage.compareTo("disconnect")==0) {
                    byte bytemessage1[]=stringmessage.getBytes();
                    os.write(bytemessage1);
                    break;  
                }
                else {
                    byte bytemessage2[]=stringmessage.getBytes();
                    os.write(bytemessage2);    
                    byte readmessage[]=new byte[30];
                    is.read(readmessage);
                    System.out.println(new String(readmessage));  
                    }       
                }
            is.close();
            os.close();
            sock.close();
            }
            catch(Exception e){
            System.out.println("Error "+ e.toString());
            }   
        }
}
вот код для сервера:
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
package servvv;
import java.net.*;
import java.io.*;
 
class ServerTCP{
    static int countclients=0;
    public static void main(String args[]){  
        ServerSocket sock;
        InputStream is;
        OutputStream os;
        try{
        sock=new ServerSocket(1024);
        while(true){
                Socket client=sock.accept();
                countclients++;
                System.out.println("Клиент  "+countclients+"  присоединен: ");
                is=client.getInputStream();
                os=client.getOutputStream();
                boolean flag=true;
                while(flag==true){
                    byte clientMessage[]=new byte[30];
                    is.read(clientMessage);
                    String tempString=new String(clientMessage,0,clientMessage.length);
                    if(tempString.trim().compareTo("disconnect")==0) {
                        System.out.println("receaved from client disconnect");
                        flag=false;
                    }
                    else {
                        os.write(clientMessage);
                        System.out.println(new String(clientMessage));
                    }
                }
                is.close();
                os.close();
                client.close();
                System.out.println("Клиент "+countclients+" присоединен!");
        }
        }   
        catch(Exception e){
            System.out.println("Error "+ e.toString());
        }   
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.03.2015, 13:03
Ответы с готовыми решениями:

Клиент - Сервер
Добрый вечер! Сижу, разбираюсь с TCP клиентом-сервером.. Задача такая: клиент посылает серверу любое число n, а сервер возвращает массив...

Клиент-сервер
Доброго времени суток всем. Обращаюсь с просьбой помочь с клиент-серверным приложением. Необходимо реализовать клиент-серверное...

Клиент-сервер
Надо написать приложение клиент-сервер, один сервер, много клиентов. В какую сторону смотреть? Давайте пожалуйста ссылки, литературу.

2
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,667
Записей в блоге: 29
08.04.2015, 21:13
вместо CompareTo я бы использовал equals, зачем такие сложности с байтами? Если уж читаешь Стринг
Java
1
String stringmessage=br.readLine();
, так его уж и передавай для простоты, а уж сервер там пусть разбирается, раскладывает на части, считает и отправляет такой же Стринговый ответ.
У тебя и при соединении и при закрытии подключения сервер пишет что клиент присоединен.
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
09.04.2015, 09:00
и ненадо использовать 1024 порт, любое другое число выше
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.04.2015, 09:00
Помогаю со студенческими работами здесь

Клиент сервер
Всем привет, возник такой вопрос, вот у меня есть сервер на java, такой простенький, и клиент (приложение на андройде), они обмениваются...

Клиент-сервер
Сам я недавно начал изучать Java и не знаю весь его синтаксис. Но столкнулся с задачей сделать простой клиент-сервер, решающий простую...

Клиент-сервер
Здравствуйте, задача написать клиент-сервер. Принцип такой: есть сервер и несколько клиентов, как только на одном из клиентов изменяется...

Клиент - Сервер
Всем привет! Тут такое дело, написал клиент и сервер, клиент должен передать объект серверу, а потом после обработки сервер должен в ответ...

Сервер-клиент
Имеется сервер и два клиента. Необходимо получить подтверждение от обоих клиентов. Код потока сервера: package server; import...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru