Commit 1af004fa authored by Francisco Cabrera Fernandez's avatar Francisco Cabrera Fernandez
Browse files

F

parent 146cdca2
......@@ -5,12 +5,15 @@
#include <stdio.h>
#include <opencv2\opencv.hpp>
#include <vector>
#include <array>
#include <pthread.h>
using namespace cv;
using namespace std;
#define PORT 3490
#define MY_IP "127.0.0.1"
#define MAX_QUEUE 10
#define MAX_QUEUE 20
#define MAX_MSG_SIZE 65535
int main(void)
......@@ -30,6 +33,9 @@ int main(void)
bind(server_socketTCP, (struct sockaddr*)&server_addr, server_addr_size); // le fijo a ese skt, el ip y puerto mio, no a donde mando, no hay conexiones de nada aun.
//se le da identidad/ configura el skt servidor
int comunicacion[20]={0}; //para la comunicacion entre cada hilo de un cliente
Mat frame; //array que representa los frames del video
vector<uchar> encoded; //vector para almacenar el frame codificado en jpeg
VideoCapture cap(video.mp4); //Obtener el video desde archivo.
......@@ -38,23 +44,39 @@ int main(void)
//primitiva LISTEN
listen(server_socketTCP, MAX_QUEUE); //si hay mas de 10 encolados, se descartan las solicitudes nuevas
listen(server_socketTCP, MAX_QUEUE); //si hay mas de 20 encolados, se descartan las solicitudes nuevas
if (server_socketTCP == -1){
perror("No se puede preparar para recibir conexion");
exit(1);
}
int id_libre = 0;
int id_cliente;
while (1) {
//primitiva ACCEPT
struct sockaddr_in client_addr;
socklen_t client_addr_size = sizeof client_addr;
int socket_to_clientTCP = accept(server_socketTCP, (struct sockaddr *)&client_addr, &client_addr_size);
//abre conexion, si no hay nadie solicitando, me quedo aca bloqueado esperando
comunicacion[id_libre] = 1;
id_cliente=id_libre;
int i = 0;
bool encontre = false;
while ((i < 20) && !encontre){
if (comunicacion[i] == 0){
id_libre = i;
encontre = true;
}
i++;
}
pthread_t hilo_control;
pthread_t hilo_stream;
pthread_create(&hilo_control, NULL, funcionTCP(id_cliente), NULL); //separo thread (idcliente, tcp)
pthread_create(&hilo_stream, NULL, funcionUDP(id_cliente), NULL);//separo thread (idcliente, udp)
repeat
listen tcp
if escucho == pausa
......@@ -67,6 +89,7 @@ int main(void)
//primitiva CLOSE
close(socket_to_clientTCP);
id_libre = id_cliente;
}
//CLOSE del socket que espera conexiones
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment