Commit 146cdca2 authored by belen's avatar belen
Browse files

b

parent e1765e95
/*
* servidor.cc
*
* Created on: 5 set. 2018
* Author: belen
*/
#include <string.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <stdlib.h>
#include <stdio.h>
#include <opencv2\opencv.hpp>
#include <vector>
using namespace cv;
using namespace std;
#define PORT 3490
#define MY_IP "127.0.0.1"
#define MAX_QUEUE 10
#define MAX_MSG_SIZE 65535
int main(void)
{
//primitiva SOCKET
int server_socketTCP = socket(AF_INET, SOCK_STREAM, 0);
if (server_socketTCP == -1){
perror("Error al abrir el socket");
exit(1);
}
//primitiva BIND
struct sockaddr_in server_addr;
socklen_t server_addr_size = sizeof server_addr;
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(PORT);
server_addr.sin_addr.s_addr = inet_addr(MY_IP);
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
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.
//Crea una nueva ventana con nombre servidor
namedWindow("servidor", CV_WINDOW_AUTOSIZE);
//primitiva LISTEN
listen(server_socketTCP, MAX_QUEUE); //si hay mas de 10 encolados, se descartan las solicitudes nuevas
if (server_socketTCP == -1){
perror("No se puede preparar para recibir conexion");
exit(1);
}
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
repeat
listen tcp
if escucho == pausa
guardarContexto()
bloquear
enviarframe();
until termine
//primitiva CLOSE
close(socket_to_clientTCP);
}
//CLOSE del socket que espera conexiones
close(server_socketTCP);
}//fin servidor
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