Matlab - Servidor en Matlab

 
Vista:

Servidor en Matlab

Publicado por Sergio (3 intervenciones) el 01/03/2005 22:47:08
Cambio de planes, lo que intento hacer ahora es un servidor bidireccional en Matlab que me sirva se pasarela entre un programa en Visual Basic y otro en Matlab, ambos programas han de ser capaces de recibir y mandarse datos el uno al otro, es decir seran dos clientes que manden y reciban datos a ese servidor en Matlab.
Si necesitan mas datos indiquemenlo.
Lo que quiero es saber que propiedades y funciones de Matlab tengo que utilizar, o ayudas o ideas para poder realizarlo.

Muchisimas gracias de antemano.

Sergio
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Crear un servidor bidireccional para comunicación entre Visual Basic y Matlab

Publicado por Alejandro (145 intervenciones) el 06/10/2023 18:39:58
¡Entendido, Sergio! Para crear un servidor bidireccional en Matlab que sirva como pasarela entre un programa en Visual Basic y otro en Matlab, puedes utilizar sockets para establecer la comunicación. Aquí hay un enfoque general y algunos conceptos clave que podrías considerar:

1. Crear un servidor en Matlab:


- Utiliza la función `tcpip` en Matlab para crear un objeto de servidor TCP/IP.

1
2
% Crear un servidor TCP/IP
server = tcpip('0.0.0.0', 1234, 'NetworkRole', 'server');

- Configura el objeto servidor para manejar las conexiones entrantes y salientes.

1
2
3
4
% Configurar el objeto servidor
set(server, 'InputBufferSize', 1024);
set(server, 'OutputBufferSize', 1024);
set(server, 'BytesAvailableFcn', @tuFuncionCallback);

2. Función de callback:


- Define una función de callback (`tuFuncionCallback`) que maneje los datos entrantes y realice las acciones necesarias.

1
2
3
4
5
6
function tuFuncionCallback(obj, ~)
    data = fread(obj, obj.BytesAvailable);
    % Procesar los datos y enviar respuesta
    respuesta = procesarDatos(data);
    fwrite(obj, respuesta);
end

3. Conectar programas cliente:
- Desde Matlab, utiliza la función `fopen` para conectarte al servidor.

1
fopen(server);

- Desde tu programa en Visual Basic, utiliza las funciones y bibliotecas de .NET para establecer una conexión TCP/IP.

4. Enviar y recibir datos:
- Utiliza `fwrite` y `fread` en Matlab para enviar y recibir datos.

1
2
fwrite(server, datosAEnviar);
respuesta = fread(server, server.BytesAvailable);

- En tu programa en Visual Basic, utiliza las funciones correspondientes para enviar y recibir datos.

5. Cerrar conexiones:
- Asegúrate de cerrar las conexiones adecuadamente cuando sea necesario utilizando `fclose`.

1
fclose(server);

6. Manejo de errores y excepciones:
- Implementa manejo de errores y excepciones para garantizar una comunicación robusta.

Notas adicionales:


- Asegúrate de considerar temas de seguridad si es relevante para tu aplicación.
- Podrías explorar otras opciones como utilizar la toolbox de Instrument Control para facilitar la comunicación.

Recuerda ajustar el código según tus necesidades específicas y la lógica de tu aplicación. Este es un esquema general, y el diseño preciso dependerá de los requisitos exactos de tu proyecto. ¡Buena suerte con tu implementación!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar