Hallo,
habe das Problem gefunden!
Bei der DNS-abfrage ist die UDP-antwort 512 Bytes groß!
Alter Code im IP-CONTROL zeile 247bis 260
Workaround:
Viel Erfolg!
habe das Problem gefunden!
Bei der DNS-abfrage ist die UDP-antwort 512 Bytes groß!
Alter Code im IP-CONTROL zeile 247bis 260
Code Auswählen
r_offset := SEL(udp_mode,UINT_TO_INT(R_BUF.SIZE),0);
r_count := r_max_size - r_offset;
bytes_received := 0;
IF udp_mode THEN
fbReceiveFrom(bExecute := FALSE );
fbReceiveFrom(bExecute:= TRUE, sSrvNetId := sSrvNetId, hSocket:= socket, cbLen := r_count, pDest:= ADR(R_BUF.BUFFER), tTimeout:= TIME_OUT);
fbReceiveFrom.bExecute := FALSE; (* Vorbelegung *)
ELSE
fbReceive(bExecute:= FALSE);
fbReceive(bExecute:= TRUE, sSrvNetId := sSrvNetId , hSocket:= socket , cbLen:= r_count, pDest:= ADR(R_BUF.BUFFER[r_offset]) , tTimeout:= TIME_OUT);
fbReceive.bExecute:= FALSE;
END_IF;
Workaround:
Code Auswählen
r_offset := SEL(udp_mode,UINT_TO_INT(R_BUF.SIZE),0);
r_count := r_max_size - r_offset;
bytes_received := 0;
IF udp_mode THEN
IF IP_C.C_PORT = 53 THEN
r_count := 512;
END_IF;
fbReceiveFrom(bExecute := FALSE );
fbReceiveFrom(bExecute:= TRUE, sSrvNetId := sSrvNetId, hSocket:= socket, cbLen := r_count, pDest:= ADR(R_BUF.BUFFER), tTimeout:= TIME_OUT);
fbReceiveFrom.bExecute := FALSE; (* Vorbelegung *)
ELSE
fbReceive(bExecute:= FALSE);
fbReceive(bExecute:= TRUE, sSrvNetId := sSrvNetId , hSocket:= socket , cbLen:= r_count, pDest:= ADR(R_BUF.BUFFER[r_offset]) , tTimeout:= TIME_OUT);
fbReceive.bExecute:= FALSE;
END_IF;
Viel Erfolg!