Hello everyone,
I try to receive broadcast message from client on PC to DM642,but it doesn't work
who can help me ?
DM642 is server ,to receive message.while PC is client,to send broadcast message
the IP on DM642 is 192.168.1.77,mask is 255.255.255.0,Gateway IP is 192.168.1.1,the port is 7000.
the PC calls to 192.168.1.255,port is 7000.
there is my piece of code:
void tskServer()
{
int broadsock;
struct sockaddr_in broadClient,broadaddr;
int len = sizeof(struct sockaddr_in);
char buf[100];
int so_broadcast=1;
struct timeval timeout={10,0};
fdOpenSession(TaskSelf());
bzero( &broadaddr, sizeof(struct sockaddr_in) );
broadaddr.sin_addr.s_addr = inet_addr("192.168.1.77");
broadaddr.sin_family = AF_INET;
broadaddr.sin_port = htons(7000);
broadaddr.sin_len = sizeof(broadaddr);
broadsock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
setsockopt(broadsock,SOL_SOCKET,SO_RCVTIMEO,&timeout,sizeof(timeout));
setsockopt(broadsock,SOL_SOCKET,SO_BROADCAST,&so_broadcast,sizeof(int));
setsockopt(broadsock,SOL_SOCKET,SO_IFDEVICE,(void *)&so_broadcast,sizeof(int));
bind(broadsock,&broadaddr,len);
recvfrom(broadsock,(void *)buf,100,MSG_WAITALL,(PSA)&broadClient,&len);
fdCloseSession(TaskSelf());
TaskBlock(TaskSelf());
exit(1);
}