Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Путин
42 / 22 / 6
Регистрация: 14.04.2011
Сообщений: 578
#1

Не отправляется UDP пакет - Программирование Android

25.12.2014, 21:14. Просмотров 423. Ответов 4
Метки нет (Все метки)

в потоке устанавливаю соединение с сервером:
Кликните здесь для просмотра всего текста
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
48
@Override
protected Void doInBackground(Void... params)
{
    if (this.MA == null)    return null;
    //java.util.concurrent.TimeUnit.SECONDS.sleep(10);  
    byte[] message = new byte[1500];
    try {
        host = java.net.InetAddress.getByName( "127.0.0.1" ) ;
    } catch (UnknownHostException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
        this.MA.toast__(e1.getMessage());
    }
    java.net.DatagramPacket p = new java.net.DatagramPacket(message, message.length, host, 82);     
    try {
        socket = new java.net.DatagramSocket();
    } catch (SocketException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
        return null;
    }
    socket.connect(host, 82);
    while(true)
    {
        try
        {
            socket.receive(p);
            java.io.DataInputStream in = new java.io.DataInputStream(new java.io.ByteArrayInputStream (message));
            short PacketType = in.readShort(); 
            switch (PacketType)
            {
                default:    MA.toast__("TNet: Recv. PocketType: " + new Short(PacketType).toString());
            }
            traff += message.length;
            in = null;
        } catch (java.io.IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch( Exception e ) {
            e.printStackTrace();
            this.MA.toast__(e.getMessage());
        }
    }
    /*if (socket != null) socket.close();
    socket = null;
    p = null;
    return null;*/
}


далее отдельная функция для отправления сообщений:
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public void Send(byte[] msg)
{
    this.MA.toast__("HOST: "+host.toString());
    if (socket == null || !socket.isConnected())    return;
    java.net.DatagramPacket pack = new java.net.DatagramPacket(msg, msg.length, host, 82);
    try
    {
        socket.send(pack);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        this.MA.toast__(e.getMessage());
    } finally {
        traff += msg.length;
        this.MA.toast__("Packet has been sended!");
    }
    pack = null;
    return;
}


Вызываю из главного потока:
Кликните здесь для просмотра всего текста
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
byte[] message = new byte[1500];
outMsg = new java.io.ByteArrayOutputStream();
out = new java.io.DataOutputStream(outMsg);                 
try
{
    out.writeShort(0);
    out.writeUTF(EditText1.getText().toString().trim());
    out.writeUTF(EditText2.getText().toString().trim());
    out.flush();
    out.close();
    message = outMsg.toByteArray();
} catch (IOException e) {
    // TODO Auto-generated catch block
    this.toast__(e.getMessage());
    e.printStackTrace();
} catch( Exception e ) {
    this.toast__(e.getMessage());
    e.printStackTrace();
}
try
{
    outMsg.close();
} catch (IOException e) {
    // TODO Auto-generated catch block
    this.toast__(e.getMessage());
    e.printStackTrace();
}
out = null;                 
outMsg = null;
if (message.length > 0) ((NetWork)objs[22]).Send(message);
else
    this.toast__("Packet size <= 0");


сокет в функции отправления тот который был инициализирован в потоке, пишет "Packet has been sended!" все хорошо все отправил, но сервер ничего не принял, пакет не отправился, почему?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2014, 21:14     Не отправляется UDP пакет
Посмотрите здесь:

Не доходят пакет UDP - Программирование Android
почему при передачи пакета от сервера к клиенту (используя udp) пакет (сообщение) он не получает. какой при этом ip получателя нужно...

Не отправляется файл - Программирование Android
Здравствуйте. Приложение не хочет отправлять картинку, вместо этого отправляет текст с путём к ней делал так: Bitmap...

Не отправляется по сети - Программирование Android
Доброго времени суток, хочу написать простое клиент-серверное приложение(отправлять текст из EditText одного телефона и выводить в EditText...

Широковещательный пакет в локальную сеть - Программирование Android
Всем привет! Я пишу приложение под Android, которое должно отправлять в сеть широковезательный пакет? Приложение закрывается при...

Не могу найти пакет приложения в папке data - Программирование Android
Скомпилировал приложение, установил на свой телефон. Хочу проверить работу с файлами, захожу в папку Android-&gt;data. Но папки моего...

Udp connection - Программирование Android
Здравствуйте! Нужна Ваша помощь. Есть прибор, к которому через протокол UDP подключается телефон и оправляет ему коннамды. ...

Не приходит UDP сообщение - Программирование Android
Здравствуйте. В моем приложении потребовалась широковещательная отправка сообщений. Сообщения вроде как отправляются, но приложение...

Прием UDP пакетов - Программирование Android
Здравствуйте. Сразу скажу, никогда не имел дело с сокетами, тем более с UDP. Сервер у меня на python и с ним проблем никаких нет, клиент...

Отправка пакета (UDP) - Программирование Android
День добрый Как организовать передачу пакета (UDP) из любого участка кода? Имеется в виду отправка пакета из любой Активити. ...

Не работает UDP сервер - Программирование Android
Почему у меня вылетает приложение на ds.receive(dp);? В манифесте android.permission.INTERNET есть если что. public void...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kastaneda
Форумчанин
Эксперт С++
4479 / 2841 / 227
Регистрация: 12.12.2009
Сообщений: 7,224
Записей в блоге: 1
Завершенные тесты: 1
25.12.2014, 21:38     Не отправляется UDP пакет #2
Цитата Сообщение от Путин Посмотреть сообщение
пишет "Packet has been sended!" все хорошо все отправил
В том то и дело, что эта строка напишется в любом случае не зависимо от результата. Советую все же ее писать, если пакет действительно отправлен.
Путин
42 / 22 / 6
Регистрация: 14.04.2011
Сообщений: 578
25.12.2014, 21:45  [ТС]     Не отправляется UDP пакет #3
Цитата Сообщение от Kastaneda Посмотреть сообщение
В том то и дело, что эта строка напишется в любом случае не зависимо от результата. Советую все же ее писать, если пакет действительно отправлен.
А это можно узнать не спрашивая у сервера?

Добавлено через 4 минуты
Да и может он все таки был отправлен, но не дошел.
Здесь "this.MA.toast__("HOST: "+host.toString());" выводит "/127.0.0.1"
откуда взялся слэш не пойму или это искажение такое типы то разные...
Kastaneda
Форумчанин
Эксперт С++
4479 / 2841 / 227
Регистрация: 12.12.2009
Сообщений: 7,224
Записей в блоге: 1
Завершенные тесты: 1
25.12.2014, 21:53     Не отправляется UDP пакет #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Путин Посмотреть сообщение
А это можно узнать не спрашивая у сервера?
UDP без подтверждения уходят, по сути "вникуда".

Я имел ввиду, что toast, который пишет мессаджд, что пакет ушел нужно перенести из finally{} в try{}, сразу за send()

Добавлено через 1 минуту
Кстати сервер на телефоне запущен?
Путин
42 / 22 / 6
Регистрация: 14.04.2011
Сообщений: 578
25.12.2014, 22:09  [ТС]     Не отправляется UDP пакет #5
Цитата Сообщение от Kastaneda Посмотреть сообщение
Кстати сервер на телефоне запущен?
нет сервер запущен на компьютере С++, но я понял намек, сейчас попробуем внешний IP заюзать

Добавлено через 11 минут
Да проблема была именно в этом, тестировал на эмуляторе естесно там localhost не компьютер, ну а на реальном устройстве вообще забыл что у меня не внешний прописан
Yandex
Объявления
25.12.2014, 22:09     Не отправляется UDP пакет
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru