реклама на сайте
подробности

 
 
> LwIP: UDP
k000858
сообщение Jul 18 2016, 12:16
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 319
Регистрация: 31-01-12
Пользователь №: 69 978



Поднял UDP сервер, отвечаю на входящие запросы.
Проблема вот в чем: открыл 1200 порт, поступают запросы с локального 1200 а удаленного **** порта, сервер должен был ответить с 1200 локального на **** удаленный порт, а в действительности отвечает с 1200 на 1200 порт.

Что я делаю ни так?

открыл порт
Код
    upcb = udp_new();    // Create a new UDP control block

    if (upcb)
    {
        // Bind the upcb to the UDP_PORT port
        // Using IP_ADDR_ANY allow the upcb to be used by any local interface
        err = udp_bind(upcb, IP_ADDR_ANY, 1200);

        if(err == ERR_OK)
        {
            udp_recv(upcb, udp_receive_callback, NULL);    // Set a receive callback for the upcb
        }
    }


отвечаю udp_send(upcb, ans); // Send data
либо udp_sendto(upcb, ans, &upcb->remote_ip, upcb->local_port); // Send data

в отладке вывожу upcb->local_port и upcb->remote_port которые оба якобы 1200, но в действительности это ни так - видно сниффером сети
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 2)
scifi
сообщение Jul 18 2016, 13:36
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Если что, у меня вот так:
Код
...
{
    udp_bind(upcb, IP_ADDR_ANY, listen_port);
    udp_recv(upcb, recv, 0);
}

void recv(void *arg, struct udp_pcb *upcb, struct pbuf *p_arg, struct ip_addr *addr, u16_t port)
{
...
    udp_sendto(upcb, psend, addr, port);
}
Go to the top of the page
 
+Quote Post
k000858
сообщение Jul 19 2016, 03:54
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 319
Регистрация: 31-01-12
Пользователь №: 69 978



хм. ваш вариант подошел
именно в переменной-аргументе port содержался нужный номер порта
интересно, почему и в upcb->local_port и upcb->remote_port содержится один и тот же локальный порт, который открывает UDP сервер.
в общем заработало, спасибо

Сообщение отредактировал IgorKossak - Jul 19 2016, 07:22
Причина редактирования: бездумное цитирование
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 13:20
Рейтинг@Mail.ru


Страница сгенерированна за 0.01359 секунд с 7
ELECTRONIX ©2004-2016