the Angilent I/O interface :
if I click "add an instrument" , open this :
at this time, it will send broadcast message,DM642 will receive.
this is my code on DM642:
void receive_broad()
{
int broadsock;
struct sockaddr_in broadClient,broadaddr;
int len = sizeof(struct sockaddr_in);
struct fd_set FuSet;
char buf[100];
char * ip;
int retn=0;
int so_broadcast=1;
struct timeval timeout={10,0};
fdOpenSession(TaskSelf());
bzero( &broadaddr, sizeof(struct sockaddr_in) );
broadaddr.sin_family = AF_INET;
broadaddr.sin_addr.s_addr=INADDR_ANY;
broadaddr.sin_port = htons(BROAD_PORT);
broadaddr.sin_len = sizeof(broadaddr);
broadsock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
if(broadsock<0)
printf("the broad socket is failure!\n");
retn=bind(broadsock,&broadaddr,len);
if(retn<0)
printf("the broad socket bind is fail!\n");
while(1)
{
recvfrom(broadsock,(void *)buf,100,MSG_WAITALL,(PSA)&broadClient,&len);
NtIPN2Str((broadClient.sin_addr.s_addr),ip);//turn to char
printf("the from addr is %s\n",ip);
printf("the msg is %s\n",buf);
}
fdCloseSession(TaskSelf());
TaskBlock(TaskSelf());
}
and now, DSP can receive message from Angilent I/O instrumen's message on 192.168.1.11:
but the angilent IO instrument has no change .
who can help me ?