rendered paste body#pragma comment (lib,"ws2_32.lib")
#include <windows.h>
#include "cv.h"
#include "highgui.h"
#include <stdio.h>
int width = 0;
int height = 0;
int size = 0;
int origin = 0;
WSADATA wsadata;
int sock;
int nysock;
int sin_size;
struct sockaddr_in sock_addr_my;
struct sockaddr_in sock_addr_their;
int main( int argc, char** argv )
{
WSAStartup(MAKEWORD(2, 2), &wsadata); //Installerar sockets för applikationen
sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
sock_addr_my.sin_addr.s_addr = INADDR_ANY;
sock_addr_my.sin_port = htons(10);
sock_addr_my.sin_family = AF_INET;
bind(sock,(struct sockaddr *)&sock_addr_my, sizeof(sock_addr_my));
listen(sock, 5);
sin_size = sizeof(sock_addr_their);
nysock = accept(sock,(struct sockaddr *)&sock_addr_their, &sin_size);
if(nysock == -1)
{
printf("Kunde inte upprätta anslutning");
return 0;
}
cvNamedWindow( "Webcam", 0 ); //1 ifall fönstret inte ska kunna resizas
while(true)
{
IplImage* frame = 0;
int c;
int recvv = 0;
size = 0;
while(size == 0)
{
recvv = recv(nysock, (char*)&size, 4, 0);
printf("stl: %d\n", recvv);
}
printf("size: %d\n", size);
recvv = recv(nysock, (char*)&width, 4, 0);
printf("stl: %d\n", recvv);
recvv = recv(nysock, (char*)&height, 4, 0);
printf("stl: %d\n", recvv);
recvv = recv(nysock, (char*)&origin, 4, 0);
printf("stl: %d\n", recvv);
frame = cvCreateImage(cvSize(width, height), 8, 3);
int counter = 0;
while(counter < size)
{
recvv = recv(nysock, frame->imageData+counter, size-counter, 0);
if(recvv <= 0) {
printf("FEL!");
break;
}
else {
counter += recvv;
}
printf("stl: %d\n", recvv);
}
printf("h: %d\n", height);
printf("w: %d\n", width);
printf("o: %d\n", origin);
printf("%d\n", WSAGetLastError());
frame->origin = origin;
printf("HEJ\n");
if( !frame )
break;
printf("HEJ\n");
cvShowImage( "Webcam", frame );
printf("HEJ\n");
c = cvWaitKey(10);
printf("HEJ\n");
if(c == 27)
break;
cvReleaseImage(&frame);
}
cvDestroyWindow("Webcam");
return 0;
}