next up previous
Next: int recibe(endpoint* desc, void* Up: Librería (práctica 4: 2 Previous: endpoint *newendpoint(endpoint_info *info);

int envia(endpoint* desc, const void* data, int tam);

Esta función necesita un endpoint de escritura. Envía tam bytes que se encuentran a partir de la dirección apuntada por data. La cantidad de bytes no puede superar el tamaño máximo de datos en un paquete TAM_MDU y si son menos esta función incluye más hasta completar el paquete, teniendo en cuenta que no importa el valor de estos bytes de relleno dado que con el campo numbytesdatos se sabe perfectamente dónde acaban los bytes útiles del paquete.

Para enviar los datos la función construye un paquete que engloba dentro de un mensaje de tipo msg_data y lo envía a la entidad de comunicación a través de la cola de mensajes. El campo id_serv_origen lo rellena con 0 y el campo id_proc_origen con el PID de la aplicación cliente.

Su valor de retorno es el número de bytes de datos que se entregan a la entidad de comunicación. Un error se indica con un $-1$.



Daniel Morato 2000-11-06