MATLAB Answers

cannot receive udp packet

27 views (last 30 days)
jinesh jhonsa
jinesh jhonsa on 24 Aug 2019
Commented: jinesh jhonsa on 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;

  0 Comments

Sign in to comment.

Answers (1)

Walter Roberson
Walter Roberson on 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 Comment

jinesh jhonsa
jinesh jhonsa on 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;

Sign in to comment.

Products


Release

R2018b

Translated by