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

Не приходит UDP сообщение - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Конструкторы приложений http://www.cyberforum.ru/android-dev/thread1128850.html
Доброго времени суток всем! Ребят кто знает подскажите неплохие сервисы по созданию приложений, изучаю андройд программирование уже около полугода, но желаемого результата пока не достиг, буду очень признателен. Заранее спасибо)
Android Сколько активностей может быть Ребята я писал приложения, но использовал по минимуму активностей, тупо было ненужно. Мне стало интересно сколько может быть "максимально", или сколько вы пробовали, видели. И как это отражается на производительности? http://www.cyberforum.ru/android-dev/thread1128746.html
Записать массив байтов с микрофона Android
Всем привет! Возникла проблема, никак не могу придумать такую штуку, допустим, имеется небольшое приложение, две кнопки: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" ...
Android Работа с gps
помогите пожалуйста! как получать скорость с помощью gps?
Android Структура файловой системы Андройд -где что? http://www.cyberforum.ru/android-dev/thread1128627.html
Приветствую всех, продолжаю свое изучение Андройда: время для файловой системы (иначе просто не могу понять - куда создаваемый файл писать). И хотя я часто использую Убунту, файловая структура Линукса, тем более Андройда - мне почти не знакома. Установил Х-plore (на КитКэт) и не увидел в нем ничего кроме вопросов: 1) почему директория /storage/emulated/o - содержит то же что и что...
Android Как можно в progressBar вернуть прогресс нужного потока? На разных фрагментах(экранах) начинаю скачку файла и именно на лаяуте располагается progressBar, при переходе с экрана на экран progressBar теряет свой прогресс и не виден ход загрузки файла. Одновременно можно качать файлы на разных экранах. Как можно в progressBar вернуть прогресс нужного потока, ведь в фоне они работают? подробнее

Показать сообщение отдельно
Wonkyhole
6 / 6 / 1
Регистрация: 25.03.2014
Сообщений: 51

Не приходит UDP сообщение - Android

25.03.2014, 00:38. Просмотров 794. Ответов 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
40
41
42
43
44
45
46
47
48
49
public class NoticeSender
{
    final static String tag = "NoticeSender";
 
    static void SendNotice(Context context, String mess)
    {
        DatagramSocket sock = null;
 
        try
        {
            sock = new DatagramSocket();
            sock.setBroadcast(true);
        }
        catch (SocketException e)
        {
            Log.e(tag, e.getMessage());
        }
 
        try
        {
            byte[] buff = mess.getBytes();
            DatagramPacket pack = new DatagramPacket(buff, buff.length, getBroadcastAddress(context), 35876);
            sock.send(pack);
        }
        catch (IOException e)
        {
            Log.e(tag, e.getMessage());
        }
 
        sock.close();
    }
     
    static InetAddress getBroadcastAddress(Context ctx) throws IOException
    {
        WifiManager wifi = (WifiManager) ctx.getSystemService(Context.WIFI_SERVICE);
        DhcpInfo dhcp = wifi.getDhcpInfo();
        byte[] quads = new byte[4];
 
        if (dhcp == null)
            return InetAddress.getByName("255.255.255.255");
 
        int broadcast = (dhcp.ipAddress & dhcp.netmask) | ~dhcp.netmask;
 
        for (int k = 0; k < 4; k++)
            quads[k] = (byte)((broadcast >> k * 8) & 0xFF);
 
        return InetAddress.getByAddress(quads);
    }
}
Код приемника:
C#
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
    class ReceiveMessageArgs
    {
        protected string m_message;
        public string Message
        {
            get { return m_message; }
            set { m_message = value; }
        }
 
        public ReceiveMessageArgs(string message)
        {
            m_message = message;
        }
    }
 
    class UDPListener
    {
        private Socket socket;
        private byte[] DataBuffer;
 
        public delegate void ReceiveMessageEventHandler(object sender, ReceiveMessageArgs e);
        public event ReceiveMessageEventHandler OnReceiveMessage;
 
        public UDPListener(int port = 35876)
        {
            DataBuffer = new byte[8192];
 
            this.socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
            this.socket.Bind(new IPEndPoint(IPAddress.Any, port));
        }
 
        public void Start()
        {
            this.socket.BeginReceive(DataBuffer, 0, DataBuffer.Length, SocketFlags.None, Receive, null);
        }
 
        public void Receive(IAsyncResult result)
        {
            try
            {
                var recievedBytes = this.socket.EndReceive(result);
 
                if (recievedBytes != 0)
                {
                    byte[] packetData = new byte[recievedBytes];
                    Buffer.BlockCopy(DataBuffer, 0, packetData, 0, recievedBytes);
                    string message = Encoding.UTF8.GetString(packetData);
                    ReceiveMessage(message);
                }
 
                this.socket.BeginReceive(DataBuffer, 0, DataBuffer.Length, SocketFlags.None, Receive, null);
            }
            catch (Exception e)
            {
            }
        }
 
        protected void ReceiveMessage(string message)
        {
            if (OnReceiveMessage != null)
                OnReceiveMessage(this, new ReceiveMessageArgs(message));
        }
    }
Подскажите, в чем может быть проблема? Телефон подключен через WiFi к роутеру, компьютер через витую пару подключен к этому же роутеру.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 06:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru