All pastes #777798 Raw Edit

Unnamed

public text v1 · immutable
·published 2007-11-17 00:36 UTC
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;
}