cannot receive udp packet

2 Ansichten (letzte 30 Tage)
jinesh jhonsa
jinesh jhonsa am 24 Aug. 2019
Kommentiert: jinesh jhonsa am 24 Aug. 2019
I am sending udp packets from udp client server app on windows 8. I can see the packet received on wireshark but I cannot receive it on matlab. I have turned off firewall and made sure everything required in following warning is satisfied. I can send udp packet on particular ip address and port but cannot receive it.Let me know what is the issue
Warning: A timeout occurred before the Terminator was reached.
'udp' unable to read any data. For more information on possible
reasons, see UDP Read Warnings.
u = udp('169.254.113.115',48569);
u.DatagramTerminateMode = 'off';
u.EnablePortSharing = 'on';
fopen(u);
fprintf(u,'Request Time sf\n');
data = fgets(u);
fclose(u);
delete(u);
clear u;

Antworten (1)

Walter Roberson
Walter Roberson am 24 Aug. 2019
This is what you asked for. You deliberately configured udp to read across datagram boundaries until it sees a termination character, but you do not send any termination characters. Your data stream is
Hello1wHello1Hello1Hello1Hello1Hello1Hello1
You need to do one of the following:
  1. send a termination character (both sides need to agree and I recommend coding the property explicitly instead of defaulting it); or
  2. use datagram terminate mode so you read each packet even without termination; or
  3. read a particular number of characters with fread()
  1 Kommentar
jinesh jhonsa
jinesh jhonsa am 24 Aug. 2019
I added o as terminator still getting same error. here is the updated code
u = udp('169.254.113.115',48569);
u.DatagramTerminateMode = 'on';
u.EnablePortSharing = 'on';
u.Terminator = 111;
fopen(u);
data = fscanf(u);
fclose(u);
delete(u);
clear u;

Melden Sie sich an, um zu kommentieren.

Produkte


Version

R2018b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by