rewrite packets to send in jpeg form

This commit is contained in:
2025-03-26 19:13:13 -05:00
parent c85581749b
commit ea952e1981
6 changed files with 94 additions and 108 deletions

View File

@@ -5,7 +5,7 @@
#include <netinet/in.h>
#include <sys/socket.h>
#include <unistd.h>
#include <packets/ImagePacket.h>
#include "transfer.h"
using namespace std;
@@ -21,7 +21,7 @@ int main() {
serverAddress.sin_addr.s_addr = INADDR_ANY;
// binding socket.
bind(serverSocket, (struct sockaddr*)&serverAddress,
bind(serverSocket, reinterpret_cast<sockaddr *>(&serverAddress),
sizeof(serverAddress));
// listening to the assigned socket
@@ -32,21 +32,21 @@ int main() {
= accept(serverSocket, nullptr, nullptr);
// TODO: handle multiple images
cv::Mat image = cv::Mat::zeros(480, 640, CV_8UC3);
// setup packet buffer
char buffer[IMAGEPACKET_SIZE] = { 0 };
ImagePacket packet = ImagePacket(&image, 0);
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
recv(clientSocket, buffer, sizeof(buffer), 0);
packet.deserialize(buffer);
cout << "received packet with index " << packet.getBegin() << endl;
packet.apply(&image);
vector<uchar> 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;
}