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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.10.2016, 19:07   #1
JanCover
Новичок
Джуниор
 
Регистрация: 09.03.2016
Сообщений: 10
По умолчанию Отправка с сервера информацию клиенту

Написал сервер, который отправляет введённое с клавиатуры значение клиенту, а клиент в свою очередь принимает значение, меняет статус и выводит значение статуса, вроде должно работать, но ничего нее пашет =(
Помогите плиз

Сервер
Код:
import java.net.*;
import java.io.*;
public class Server {
    public static void main(String[] ar)    {
        int port = 6666; // случайный порт (может быть любое число от 1025 до 65535)
        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);

            BufferedReader keyboard = new BufferedReader(new InputStreamReader(System.in));
            String dor = null;

            while (true) {
                dor = keyboard.readLine(); // ждем пока пользователь введет что-то и нажмет кнопку Enter.
                out.writeUTF(dor); // отсылаем введенную строку текста клиенту.
                out.flush(); // заставляем поток закончить передачу данных.
                dor = in.readUTF(); // ждем пока сервер отошлет строку текста.
            }
        } catch(Exception x) { x.printStackTrace(); }
    }
}
Клиент
Код:
import java.net.*;
import java.io.*;
enum Status { dor_open, dor_close }

public class Client {
    public static void main(String[] ar) {
        int serverPort = 6666; // здесь обязательно нужно указать порт к которому привязывается сервер.
        String address = "127.0.0.1"; // это IP-адрес компьютера, где исполняется наша серверная программа.
        // Здесь указан адрес того самого компьютера где будет исполняться и клиент.

        try {
            InetAddress ipAddress = InetAddress.getByName(address); // создаем объект который отображает вышеописанный IP-адрес.
            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);

            Status status = Status.dor_close;
            System.out.println(status);
            String dor = null;
            while(true) {
                dor = in.readUTF(); // ожидаем пока сервер пришлет строку текста.
                out.flush(); // заставляем поток закончить передачу данных.
                while (status == Status.dor_close) {
                    while (dor=="1")
                        status = Status.dor_open;
                }
                while (status == Status.dor_open) {
                    while (dor=="0")
                        status = Status.dor_close;
                }
            }

        } catch (Exception x) {
            x.printStackTrace();
        }
    }
}
JanCover вне форума Ответить с цитированием
Старый 04.10.2016, 19:12   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Что именно не так?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 05.10.2016, 09:44   #3
JanCover
Новичок
Джуниор
 
Регистрация: 09.03.2016
Сообщений: 10
По умолчанию

Мне нужно что бы у сервера была какая-то инфа, в данном случае 0 или 1, может это просто храниться в какой-то переменной или вводиться с клавиатуры в какую-то переменную, а клиент постоянно считывал эту переменную, если она изменилась с 0 на 1, то выдавало сообщение dor_open, затем клиент опять считывает переменную, если она не меняется, то ничего не происходит, если опять сменилась, то идёт дальше и так по кругу.
А я на сервере ввожу переменную и ничего не меняется, на клиенте ничего не происходит =/
JanCover вне форума Ответить с цитированием
Старый 05.10.2016, 10:08   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Откуда вы знаете, что не меняется? Разве в коде клиента есть вывод статуса?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ответ от сервера клиенту primerb C++ Builder 0 10.05.2015 18:43
Передача формы по сети от сервера к клиенту prizrak1390 Работа с сетью в Delphi 11 03.11.2014 19:02
Проблема с передачей html файла от сервера к клиенту. Roland_Lviv_ua Общие вопросы .NET 0 12.08.2012 23:30
Отправка сообщения с сервера клиенту. securus Работа с сетью в Delphi 0 31.08.2010 03:32
Проблема с отправкой MemoryStream от сервера к клиенту Ragnarek Работа с сетью в Delphi 4 07.02.2009 10:29