#include #include #include #include #include #include #include using namespace std; int main() { cv::VideoCapture cap = cv::VideoCapture(0); int clientSocket = socket(AF_INET, SOCK_STREAM, 0); // specifying address sockaddr_in serverAddress; serverAddress.sin_family = AF_INET; serverAddress.sin_port = htons(8080); serverAddress.sin_addr.s_addr = INADDR_ANY; cv::Mat image = cv::Mat::zeros(cv::Size(640, 480), CV_8UC3); ImagePacket packet = ImagePacket(&image, 0); // sending connection request connect(clientSocket, (struct sockaddr*)&serverAddress, sizeof(serverAddress)); unsigned long pos = 0; unsigned long len = image.total() * image.elemSize(); char buffer[IMAGEPACKET_SIZE]; cout << "Image length " << len << endl; while (true) { cap.read(image); packet = ImagePacket(&image, pos); packet.serialize(buffer); send(clientSocket, buffer, sizeof(buffer), 0); cout << "Sent packet with index " << pos << endl; pos = (pos + SLICE_SIZE) % len; } close(clientSocket); return 0; }