#include #include #include #include #include #include #include #include "transfer.h" using namespace std; int main() { // TODO: read image data from socket instead of VideoCapture // creating socket int serverSocket = socket(AF_INET, SOCK_STREAM, 0); // specifying the address sockaddr_in serverAddress; serverAddress.sin_family = AF_INET; serverAddress.sin_port = htons(8080); serverAddress.sin_addr.s_addr = INADDR_ANY; // binding socket. bind(serverSocket, reinterpret_cast(&serverAddress), sizeof(serverAddress)); // listening to the assigned socket listen(serverSocket, 5); // accepting connection request int clientSocket = accept(serverSocket, nullptr, nullptr); // TODO: handle multiple images cv::Mat image = cv::Mat::zeros(cv::Size(640, 480), CV_8UC3); bool running = true; // TODO: make this asynchronous. probably do that in tandem with setting up networking while (running) { // receive data vector buffer; cout << "Receiving image" << endl; recvImage(clientSocket, buffer); cout << "Applying image" << endl; applyImage(image, &buffer); cout << "Displaying image" << endl; imshow("image", image); running = cv::waitKey(30) != 27; } close(serverSocket); return 0; }