Форум программистов, компьютерный форум, киберфорум
Наши страницы

Не приходит UDP сообщение - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Конструкторы приложений http://www.cyberforum.ru/android-dev/thread1128850.html
Доброго времени суток всем! Ребят кто знает подскажите неплохие сервисы по созданию приложений, изучаю андройд программирование уже около полугода, но желаемого результата пока не достиг, буду очень...
Программирование Android Сколько активностей может быть Ребята я писал приложения, но использовал по минимуму активностей, тупо было ненужно. Мне стало интересно сколько может быть "максимально", или сколько вы пробовали, видели. И как это отражается на... http://www.cyberforum.ru/android-dev/thread1128746.html
Записать массив байтов с микрофона Программирование Android
Всем привет! Возникла проблема, никак не могу придумать такую штуку, допустим, имеется небольшое приложение, две кнопки: <RelativeLayout...
Программирование Android Работа с gps
помогите пожалуйста! как получать скорость с помощью gps?
Программирование Android Структура файловой системы Андройд -где что? http://www.cyberforum.ru/android-dev/thread1128627.html
Приветствую всех, продолжаю свое изучение Андройда: время для файловой системы (иначе просто не могу понять - куда создаваемый файл писать). И хотя я часто использую Убунту, файловая структура...
Программирование Android Как можно в progressBar вернуть прогресс нужного потока? На разных фрагментах(экранах) начинаю скачку файла и именно на лаяуте располагается progressBar, при переходе с экрана на экран progressBar теряет свой прогресс и не виден ход загрузки файла.... подробнее

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

Не приходит UDP сообщение - Программирование Android

25.03.2014, 00:38. Просмотров 841. Ответов 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 к роутеру, компьютер через витую пару подключен к этому же роутеру.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.