cannot receive udp packet

2 visualizaciones (últimos 30 días)
jinesh jhonsa
jinesh jhonsa el 24 de Ag. de 2019
Comentada: jinesh jhonsa el 24 de Ag. de 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;

Respuestas (1)

Walter Roberson
Walter Roberson el 24 de Ag. de 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 comentario
jinesh jhonsa
jinesh jhonsa el 24 de Ag. de 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;

Iniciar sesión para comentar.

Etiquetas

Productos


Versión

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by