Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
8 years ago.
What does no suitable conversion function from "SocketAddress" to "SocketAddress" mean ?
Hi everyone ! I'm trying to make a UDP server and not knowing how to make one I decided to test it with an echo server, I found an example here: https://developer.mbed.org/teams/mbed/code/UDPEchoServer/ but the library wasn't compatible with my hardware (Nucleo-f429zi) so I tried it with the ethernetinterface in mbed-so.lib and it seems to be compatible, but every time I try to compile I get the same error with the recvfrom() function Error: No suitable conversion function from "SocketAddress" to "SocketAddress *" exists in "int n = server.recvfrom(client, buffer, sizeof(buffer));"
here is the code:
main.cpp
#include "mbed.h" #include "EthernetInterface.h" #include "Ethernet.h" #include "SocketAddress.h" #include "Socket.h" #include "UDPSocket.h" #define ECHO_SERVER_PORT 7 int main (void) { EthernetInterface eth; eth.connect(); printf("\nServer IP Address is %s\n", eth.get_ip_address()); UDPSocket server; server.bind(ECHO_SERVER_PORT); SocketAddress client; char buffer[256]; while (true) { printf("\nWaiting for UDP packet...\n"); int n = server.recvfrom(client, buffer, sizeof(buffer)); buffer[n] = '\0'; printf("Received packet from: %s\n", client.get_ip_address()); printf("Packet contents : '%s'\n",buffer); printf("Sending Packet back to Client\n"); server.sendto(client, buffer, n); } }
1 Answer
8 years ago.
Try passing in the address of the SocketAddress
int n = server.recvfrom(&client,buffer,sizeof(buffer));
The syntax is correct, dont need the & to get the base adress of the pointer... It compiles fine with an lpc4088...
You just only need as #include : "mbed.h" and "EthernetInterface.h"
remove all of others includes between lines #3 to #7. an try it to compil again.
If you need an ethernet interface use an lpc4088 qsb, it works very well.
posted by 01 Nov 2016