Statistics: Posted by tomboli — Mon Oct 26, 2015 9:16 pm
Statistics: Posted by eriksl — Mon Oct 26, 2015 2:21 am
Statistics: Posted by tomboli — Thu Oct 22, 2015 4:04 pm
Code:
LOCAL void ICACHE_FLASH_ATTR
user_udp_recv_cb(void *arg, char *pusrdata, unsigned short length)
{
os_printf("recv udp data: %s\n", pusrdata);
struct espconn *pesp_conn = arg;
remot_info *premot = NULL;
sint8 value = ESPCONN_OK;
if (espconn_get_connection_info(pesp_conn,&premot,0) == ESPCONN_OK){
char *pbuf = "udp_sent\n";
pesp_conn->proto.tcp->remote_port = premot->remote_port;
pesp_conn->proto.tcp->remote_ip[0] = premot->remote_ip[0];
pesp_conn->proto.tcp->remote_ip[1] = premot->remote_ip[1];
pesp_conn->proto.tcp->remote_ip[2] = premot->remote_ip[2];
pesp_conn->proto.tcp->remote_ip[3] = premot->remote_ip[3];
espconn_send(pesp_conn, pusrdata, os_strlen(pusrdata));
}
}
Statistics: Posted by ESP_Faye — Fri Oct 16, 2015 10:17 am
Code:
LOCAL struct espconn udpconn; // udp server
void user_devicefind_recv(void *arg, char *data, unsigned short data_len) {
struct espconn *pConnection = (struct espconn*)arg;
remot_info *premot = NULL;
espconn_get_connection_info(pConnection, &premot, 0); // get sender data (source IP)
os_memcpy(udpconn.proto.udp->remote_ip, premot->remote_ip, 4);
udpconn.proto.udp->remote_port = premot->remote_port;
debug("UDP remote: " IPSTR ":%d\n", IP2STR(udpconn.proto.udp->remote_ip), udpconn.proto.udp->remote_port);
// shows correct source IP
debug("UDP local: " IPSTR ":%d\n", IP2STR(pConnection->proto.udp->local_ip), pConnection->proto.udp->local_port);
// shows always the current device IP; never a broadcast address
}
Statistics: Posted by tomboli — Thu Oct 15, 2015 3:53 pm