- Technical Services and Consulting
- Embedded Systems | Firmware Developement | Simulations
- Electrical and Electronics Engineering
How can I receive a cell array using a UDP port?
    5 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Med Future
 el 4 de Mzo. de 2024
  
    
    
    
    
    Comentada: Walter Roberson
      
      
 el 5 de Mzo. de 2024
            I have the following code where I am sending a cell array containing numeric and string values. I want to receive and read this cell array on another client. How can I modify the code to achieve this?
client_port = 10011;
clientAddress = '192.168.100.202';
% Define the cell array
C = {5 "cereal" 110 "C+"; 12 "pizza" 140 "B";...
    23 "salmon" 367 "A"; 2 "cookies" 160 "D"};
% Open a UDP port
u2 = udpport("IPV4",'LocalPort',client_port);
for ii = 1:numel(C)
    write(u2, C{ii}, class(C{ii}), clientAddress, client_port);
end
0 comentarios
Respuesta aceptada
  Hassaan
      
 el 4 de Mzo. de 2024
        
      Editada: Hassaan
      
 el 4 de Mzo. de 2024
  
      Sender
client_port = 12389;
clientAddress = '192.168.100.202';
% Define the cell array
C = {5, "cereal", 110, "C+"; 12, "pizza", 140, "B";...
    23, "salmon", 367, "A"; 2, "cookies", 160, "D"};
% Convert the cell array to JSON string
C_json = jsonencode(C);
% Open a UDP port
u2 = udpport("IPV4", 'LocalPort', client_port);
% Send the JSON string every 1 second
while true
    % Send the JSON string
    write(u2, uint8(C_json), "uint8", clientAddress, client_port);
    disp('Data sent..');
    % Pause for 1 second before next send
    pause(1);
end
Receiver
% Example port and IP setup for the receiver
server_port = 12389; % The port where the server listens
% Open a UDP port for receiving
u = udpport("IPV4", 'LocalPort', server_port);
% Loop until data is received
while true
    % Check if data is available
    if u.NumBytesAvailable > 0
        % Read the available data
        data = read(u, u.NumBytesAvailable, "uint8");
        % Convert uint8 data to string
        data_str = char(data');
        % Decode the JSON string back to cell array
        C_received = jsondecode(data_str);
        % Display the received cell array
        disp(C_received);
        % Break the loop after processing the received data
        break;
    else
        % Optional: pause for a short time to avoid busy waiting
        pause(0.1);
    end
end
This code assumes that the receiving client is set up and ready to receive data sent to its LocalPort. Adjust the server_port and any other necessary configuration to match your setup.
Note: The effectiveness of this method depends on the size of your cell array and the limitations of your UDP buffer sizes. Large data might need segmentation and reassembly logic.
-----------------------------------------------------------------------------------------------------------------------------------------------------
If you find the solution helpful and it resolves your issue, it would be greatly appreciated if you could accept the answer. Also, leaving an upvote and a comment are also wonderful ways to provide feedback.
It's important to note that the advice and code are based on limited information and meant for educational purposes. Users should verify and adapt the code to their specific needs, ensuring compatibility and adherence to ethical standards.
Professional Interests
Feel free to contact me.
3 comentarios
Más respuestas (0)
Ver también
Categorías
				Más información sobre Deep Learning Toolbox en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


