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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> UDP соединение 
:(
    Опции темы
susanin
Дата 9.10.2010, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 587
Регистрация: 7.10.2006
Где: Санкт-Петербург

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



не могу понять в чем ошибка..создал дейтаграммное соединение и хочу передать один байт данных по нему..но данные на сервере почему то не принимаются
итак..имеем два класса, сервер и клиент
Код

public class Client {

    public Client(String address){
        try{
            connection = (UDPDatagramConnection)Connector.open(address);
            signal = new byte[1];
            signal[0]=1;
            data = connection.newDatagram(signal, signal.length);
            System.out.println("Client connection");
        }
        catch(IOException ex){

        }
    }
    public void sentSignal(){
        try{
            connection.send(data);
            System.out.println("Signal is sent");
        }
        catch(IOException ex){

        }
    }
    private UDPDatagramConnection connection;
    byte[] signal;
    Datagram data;
}

Код

public class Server implements Runnable {

    public Server(String address){
            try{
                connection = (UDPDatagramConnection)Connector.open(address);
                signal = new byte[1];
                connectedStatus=true;
                receivedData = connection.newDatagram(signal.length);
            }
            catch(IOException ex){
                System.out.println("server connection failed");
            }
            Thread t = new Thread(this);
            t.start();
    }

    public void run(){
        try{
            while(true){
                connection.receive(receivedData);
                System.out.println("Received: "+receivedData.getData());

            }
        }
        catch(IOException e){

        }
    }
    private Player player;
    MainForm f;
    private UDPDatagramConnection connection;
    private boolean connectedStatus;
    private Datagram receivedData;
    private byte[] signal;
}

в мидлете создаем объект сервера и клиента, и при нажатии на пноку вызываем метод отправки данных на сервер (sentSignal())
Код

client = new Client("datagram://localhost:5555");
server = new Server("datagram://localhost:5555");

public void commandAction(Command c,Displayable d){
 if(c.equals(sendStartSignal)&&d.equals(this)){
            client.sentSignal();
        }
    }

почему то программа залипает на получении дейтаграммы..помогите разобраться плиз, что я не так делаю?
PM MAIL   Вверх
susanin
Дата 12.11.2010, 21:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 587
Регистрация: 7.10.2006
Где: Санкт-Петербург

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



неужели никто не сталкивался с UDP соединениями?? 
проблема я так понимаю в методе receive() потому что он блокирует поток, пока не будет получена дейтаграмма..
у меня не получается даже в лоб сделать что то типа этого
Код

try{
        connection = (UDPDatagramConnection)Connector.open("datagram://localhost:5555");
        byte[] signal = new byte[1];
        signal[0]=1;
        data = connection.newDatagram(signal, signal.length);
        newData = connection.newDatagram(data.getLength());
        }catch(Exception ex){}
            connection.send(data);
            connection.receive(newData);
            System.out.println(newData.readByte());

проблема та же самая..зависает на методе получения
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

  • Прежде чем задать вопрос прочтите это!
  • Литература по Java находится здесь.
  • Литературу по Java обсуждаем здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда

  • FAQ раздела лежит здесь!
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java ME (J2ME) | Следующая тема »


 




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


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

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